美文网首页
IOS 开发之flutter模块嵌入IOS原生App

IOS 开发之flutter模块嵌入IOS原生App

作者: 谢千域 | 来源:发表于2021-08-07 17:03 被阅读0次

    1.创建Flutter 项目

    1.cd 到IOS原生项目根目录 终端执行

    flutter create --template module flutter_module


    2.打开 创建好的 flutter 项目   在 pubspec.yaml 中加入  shared_preferences: ^2.0.6 (为了打包到处5个库 不然只有3个)

    2. 给 Flutter项目 中 .ios 打包

    1.cd 到 flutter_module 项目.ios 目录 终端执行

    flutter build ios --release --no-codesign

    iOS嵌入Flutter 需要的frameworks

    3.创建一个名为 flutter-lib的私有库

    1.cd 到IOS原生项目根目录 终端执行

    pod lib create flutter-lib


    2.打开 flutter-lib.podspec

    在  end 前加入一行代码:

    s.ios.vendored_frameworks = 'ios_frameworks/App.framework','ios_frameworks/Flutter.framework','ios_frameworks/FlutterPluginRegistrant.framework','ios_frameworks/shared_preferences.framework'


    3.再在IOS原生根目录下创建一个名为 ios_frameworks 的文件夹,把刚刚的frameworks 全部粘贴过来

    4.在原生项目中引入私有库

    1 在podfile 配置路径

    flutter_application_path='/Users/xiefeng/Desktop/ChiLanCRM/flutter_test_module'

     load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')  


    如图引入的是本地路径

    2.   cd到项目根目录    pod install

    5 在iOS项目中配置

    1.AppDelegate 中

    2.跳转flutter 的地方(带 ios 跳转 传值)

    flutter 代码 

    String MethodChannelName = "crm.methodChannel";

      String? token;

    // 调用原生方法,方法名为huoquToken

      Future<void> _huoquToken() async {

        final platform = MethodChannel(MethodChannelName);

        try {

          // result是原生获到token传递过来的

          final String result = await platform.invokeMethod('huoquToken');

          token = '$result';

        } on PlatformException catch (e) {

          token = "Failed to get battery level: '${e.message}'.";

        }

        setState(() {

          print("获取token" + token!);

        });

      }

    相关文章

      网友评论

          本文标题:IOS 开发之flutter模块嵌入IOS原生App

          本文链接:https://www.haomeiwen.com/subject/wthgvltx.html