Flutter 安卓原生通信封装

发布于 2024-10-21  104 次阅读


import 'package:flutter/services.dart';

var channel = MethodChannel('com.example.networktest1/setPermissions');

class setPermissions {
  /*
  * 安卓方法调用
 * MethodChannel
 * 在方法通道上调用方法invokeMethod
 * methodName 方法名称
 * params 发送给原生的参数
 * return数据 原生发给Flutter的参数
 */

  static Future<Map> invokeNativeMethod(String methodName,
      [Map? params]) async {
    var res;
    try {
      if (params == null) {
        res = await channel.invokeMethod('$methodName');
      } else {
        res = await channel.invokeMethod('$methodName', params);
      }
    } catch (e) {
      res = {'Failed': e.toString()};
    }
    return {'result': res};
  }

  /*
  *
 * MethodChannel
 * 接收methodHandler
 * methodName 方法名称
 * params 发送给原生的参数
 * return数据 原生发给Flutter的参数
 */
  static void methodHandlerListener(
      Future<dynamic> Function(MethodCall call)? handler) {
    channel.setMethodCallHandler(handler);
  }
}
//调用
await setPermissions.invokeNativeMethod('getInstalledApps',    {'path':savePath,'packageName': 'com.example.networktest1'});
一个练习时长还差一年半的切图仔,有需求可联系 QQ:963827384
最后更新于 2024-10-21