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

2021-08-07  本文已影响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!);

    });

  }

上一篇下一篇

猜你喜欢

热点阅读