flutter 插件調用callback函數


dart plugin

class TestLib {
  static MethodChannel _channel = const MethodChannel('test_lib')
    ..setMethodCallHandler(_methodCallHandler);

  static Function _cb;

  static Future<void> _methodCallHandler(MethodCall call) async {
    printf("[%s], args: %o", call.method, call.arguments);
    switch (call.method) {
      case 'callListener':
        if(_cb != null) _cb(call.arguments as String);
        break;
      default:
        print('not method.');
    }
  }

  static void platformVersion(Function cb) {
    _cb = cb;
    _channel.invokeMethod('getPlatformVersion');
  }
}

kt

  override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
    if (call.method == "getPlatformVersion") {
      // result.success("Android ${android.os.Build.VERSION.RELEASE}")
      channel.invokeMethod("callListener", "Ajanuw");
    } else {
      result.notImplemented()
    }
  }

use

TestLib.platformVersion((String name) {
  print('hello $name');
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM