- 34
- 0
需要实现iOS原生工程调用flutter嵌套有原生view的界面
问题出现的环境背景及自己尝试过哪些方法
flutter工程调用原生iOS的view和原生工程调用flutter界面都试过,也成功跑起来了。但现在有个需求是把原生的view嵌入flutter里面,然后用原生工程调用flutter界面。我按照网上的教程,先建立一个flutter的plugin,调用原生的view,此时这个flutter工程也可正常调用原生view。然后新建一个iOS原生工程,调用flutter的plugin,此时问题就来了,原生调用flutter的plugin界面,里面嵌套的原生view是不会显示出来的,我觉得和plugin中info.plist加上io.flutter.embedded_views_preview的设置有很大关系。但我在原生工程的info.plist加上这个属性也无济于事,仍然无法显示。研究了下plugin中的Runner,发现用storyboard,然后启动的第一个界面设置为FlutterViewController,接着在AppDelegate.m中加相关设置,这样的iOS工程是可以成功加载嵌套原生view的flutter界面,如果改为先启动原生界面,再调起flutter界面,嵌套的原生view是无法显示出来。这问题卡了我好长时间,网上也没找到方法,不知各位有没有方法能够实现我上述需求。
- 共 0 条
- 全部回答
-
我家g港有枪 普通会员 1楼
在iOS原生工程中,你可以通过以下步骤调用Flutter嵌套有原生view的界面:
-
首先,你需要将Flutter应用打包为iOS应用。你可以使用Docker来创建一个Flutter应用,并将其打包为ipa文件。
-
然后,你需要将ipa文件导入到你的iOS应用中。你可以使用Xcode的
Product->Signing & Capabilities->General->IPhone Configuration->IPhone Distribution ID。 -
接下来,你需要将你的Flutter应用的URL替换为你的ipa文件的URL。你可以使用
Product->General->URL Types->URL for Your App。 -
然后,你需要将你的Flutter应用的进程ID替换为你ipa文件的进程ID。你可以使用
Product->General->Current Process->Get Process ID。 -
最后,你需要打开你的iOS应用,然后在
Main.storyboard中添加一个包含Flutter嵌套有原生view的界面的视图控制器。你可以使用UIStoryboard来加载你的Flutter应用的界面。
注意:以上步骤可能会根据你的iOS版本和设备类型有所不同。你需要根据你的具体情况进行调整。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
