Flutter 如何调用Android和iOS原生代码

请大家支持我的网站:http://tryenough.com/flutter-tonative

分3个大步骤:

1.在flutter中调用原生方法
2.在Android中实现被调用的方法
3.在iOS中实现被调用的方法

在flutter中调用原生方法

场景,这里你希望调用原生方法告诉你一个bool值,这个值的意义你可以随意定,这里表示的意义是是否是中国用户

你可以在flutter中设计好要调用的方法名称,这里就叫

isChinese

请注意:

在flutter中要调用原生代码需要通过通道传递消息,在flutter端就是MethodChannel

所以我们这里的做法是,在flutter 端创建一个自己命名的通道:

const platform = const MethodChannel("com.test/name");

这里的名字 com.test/name 你可以随便取。

讲解一下:

你可能有疑问了,我们自作主张在flutter端创建的通道,怎么就能告诉Android和iOS端到底该怎么调用呢?


你这个问题问得极好,这里啊先告诉你,等下我们还要分别在两端创建和这个通道同名的通道

敲黑板了:

此时你知道了,我们要在三端分别有一个通道了吧,而且这三个通道是同名的,所以就能连接起来了。


不过这里还是先把flutter端的代码写完,然后我们再去分别设置android和iOS端的代码吧。go!

请大家支持我的网站:http://tryenough.com/flutter-tonative

我们在flutter中的代码如下:

Future<bool> isEuropeUser() async {
    // Native channel
    const platform = const MethodChannel("com.test/name"); //分析1
    bool result = false;
    try {
      result = await platform.invokeMethod("isChinese"); //分析2
    } on PlatformException catch (e) {
      print(e.toString());
    }
    return result;
  }

还是分析一下:

分析1: 创建一个我们自定义的channel。
分析2: 用channel发送调用消息到原生端,调用方法是:isChinese


好了,flutter端相信你也觉得很简单了,接下来我们来看下android端怎么搞。

在Android中实现被调用的方法

我建议你在Android studio编写Android端代码哦,因为这样有良好的代码提示和头文件引入。不过你要是有办法做到同样的效果,啥IDE俺都不在乎。

在flutter项目文件夹里的Android文件夹中有一个 MainActivity.java文件,不要告诉我你找不到啊。

我先告诉你等下就在MainActivity里注册我们的Android端插件。嘿嘿,现在先去写我们的Android端插件吧。

代码我一次贴出来了,反正也不多。

public class FlutterNativePlugin implements MethodChannel.MethodCallHandler {
   

    public static String CHANNEL = "com.test/name";  // 分析1

    static MethodChannel channel;

    private Activity activity;

    private FlutterNativePlugin(Activity activity) {
   
        this
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值