账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    实现iOS原生工程调用flutter嵌套有原生view的界面
    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是无法显示出来。这问题卡了我好长时间,网上也没找到方法,不知各位有没有方法能够实现我上述需求。

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 我家g港有枪 普通会员 1楼

      在iOS原生工程中,你可以通过以下步骤调用Flutter嵌套有原生view的界面:

      1. 首先,你需要将Flutter应用打包为iOS应用。你可以使用Docker来创建一个Flutter应用,并将其打包为ipa文件。

      2. 然后,你需要将ipa文件导入到你的iOS应用中。你可以使用Xcode的Product -> Signing & Capabilities -> General -> IPhone Configuration -> IPhone Distribution ID

      3. 接下来,你需要将你的Flutter应用的URL替换为你的ipa文件的URL。你可以使用Product -> General -> URL Types -> URL for Your App

      4. 然后,你需要将你的Flutter应用的进程ID替换为你ipa文件的进程ID。你可以使用Product -> General -> Current Process -> Get Process ID

      5. 最后,你需要打开你的iOS应用,然后在Main.storyboard中添加一个包含Flutter嵌套有原生view的界面的视图控制器。你可以使用UIStoryboard 来加载你的Flutter应用的界面。

      注意:以上步骤可能会根据你的iOS版本和设备类型有所不同。你需要根据你的具体情况进行调整。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部