Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

传参问题 #45

Closed
kangshifu opened this issue Mar 22, 2019 · 13 comments
Closed

传参问题 #45

kangshifu opened this issue Mar 22, 2019 · 13 comments

Comments

@kangshifu
Copy link

场景:我从flutter跳原生需要传参,原生一个acitivity点击后发现没登录需要跳转flutter登录页面,登录成功需要回传值到这个原生页面,怎么处理?

@nightwolf-chen
Copy link
Contributor

简单做法通过Method Channel将数据传递到Flutter页面,通过页面id分发消息。

@kangshifu
Copy link
Author

自定义的methodChannel还是boost里面的aPI

@kangshifu
Copy link
Author

有没有交流的技术群

@nightwolf-chen
Copy link
Contributor

自定义

@zsmjhtn
Copy link

zsmjhtn commented Mar 22, 2019

借楼同问,native和dart的通信通过Method Channel进行的,那在业务场景需要下,会有大量不同类型的message,比如pop 指定数组的页面,或者调用native的现成 组件/功能。
我想问是否需要职责严格划分的自定义plugins?
原则来讲,plugins应该职责划分明确。
就是个人觉得每写一个plugin比较麻烦,不像weex那样注册个module就行了。

@nightwolf-chen
Copy link
Contributor

官方实现的插件其实只是对Channel的简单封装,业务可以在这个基础上面自己基于Channel去做组件化的职责划分。

@kangshifu
Copy link
Author

我从原生跳到flutter传参呢?在flutter路由页面哪里接收,这个不能用channel吧,我需要用这个参数显示路由页面的不同状态

@kangshifu
Copy link
Author

demo中有个重新Map的方法这个在flutter路由页面哪里获取啊,希望你们demo弄个传参数的例子

@zsmjhtn
Copy link

zsmjhtn commented Mar 22, 2019

我从原生跳到flutter传参呢?在flutter路由页面哪里接收,这个不能用channel吧,我需要用这个参数显示路由页面的不同状态

image

可以在原生路由管理时,处理url携带的参数,组装成map传给flutter。

image

params就是从flutterPageActivity 传过来的map参数

@kangshifu
Copy link
Author

那此时我在flutter的页面pop的result怎么传给启动此flutter页面的原生activity/vc

@kangshifu
Copy link
Author

我从原生跳到flutter传参呢?在flutter路由页面哪里接收,这个不能用channel吧,我需要用这个参数显示路由页面的不同状态

image

可以在原生路由管理时,处理url携带的参数,组装成map传给flutter。
image

params就是从flutterPageActivity 传过来的map参数

但是我的flutter 每个 路由页面有一个构造函数传参是class RouteOption类型不是Map

@zsmjhtn
Copy link

zsmjhtn commented Mar 23, 2019

那此时我在flutter的页面pop的result怎么传给启动此flutter页面的原生activity/vc

你的问题是怎么对自身业务参数的封装处理,想想办法应该可以解决
至于flutter回调给native,在boost的话,
image
第二个参数就是传给native的 result,在resultHandler里可以接收到。
参考boost,你可以自定义xxxplugin,通过调用xxxplugin的某个自定义handler,携带你所需的参数,method channel会调用对应的native的回调,在回调里执行你所的操作。
目前我只知道用method channel来通信,其他方法暂时不知道

@kangshifu
Copy link
Author

kangshifu commented Mar 24, 2019

我现在是纯flutter种包含跳转原生->flutter->原生这种类型,那么我在初始化boost的时候是跟demo有区别吧,demo是最开始打开原生的activity然后附一个空的container,我最开始是显示的一个flutter页面,如果按照demo的初始化顺序打开应用就包missPluginException,报哪个navigatorService的channel没有注册好,我猜想我最开始显示的flutter页面没有对应一个空的原生activity去注册这个channel。如果我把boost.init()方法放在registerbuidler之前不会有这个问题但是,我现在从原生跳转flutter页面打不开。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants