扫码关注官方订阅号
想通过native传参数给weex看demo里注释说是通过render(pageName,template,options,jsonInitData,flag)这个方法里面的option对象来传值,但是在weex中要如何使用,一直没找到相关的demo和文档或者api
render(pageName,template,options,jsonInitData,flag)
option
闭关修行中......
都没有人来回答这个问题,心好累。找了两天,终于解决了
android端 你的activity上的代码
/** * WXSample 可以替换成自定义的字符串,针对埋点有效。 * template 是.we transform 后的 js文件。 * option 可以为空,或者通过option传入 js需要的参数。例如bundle js的地址等。 * jsonInitData 可以为空。 * width 为-1 默认全屏,可以自己定制。 * height =-1 默认全屏,可以自己定制。 */ Map<String, Object> options = new HashMap<>(); options.put(WXSDKInstance.BUNDLE_URL, url); // 传递bundleUrl options.put("aa", "aaa"); // 传递自定义参数 aa options.put("bb", "ccc"); // 传递自定义参数 bb mWXSDKInstance.render("MyApplication", WXFileUtils.loadAsset("main.js", this), options, null, -1, -1, WXRenderStrategy.APPEND_ASYNC);
main.we / main.vue 文件,也就是上面代码中的main.js文件中的this.$getConfig()来获取传进来的参数
main.js
this.$getConfig()
module.exports = { data: { aa: '', bb: '', bundleUrl: '' }, methods: { // 获取 native的传参 getOptions: function() { this.aa = this.$getConfig().aa; this.bb = this.$getConfig().bb; this.bundleUrl = this.$getConfig().bundleUrl; } } }
其实很简单的问题,花了好久时间,希望社区能强壮起来,
另外一种方式 使用 WXModule方式1.原生代码
public class WXValueModule extends WXModule { @JSMethod public void getToken(JSCallback callback){ //获取定位代码..... Map<String,String> data=new HashMap<>(); data.put("token","11111"); data.put("smart","2222"); //通知一次 callback.invoke(data); //持续通知 // callback.invokeAndKeepAlive(data); //invoke方法和invokeAndKeepAlive两个方法二选一 } }
2.JS里面的调用
var valueModule=weex.requireModule('valueModule');
created(){ var ref=this; valueModule.getToken(function(v){ ref.token=v.token; ref.smart=v.smart; }); }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
都没有人来回答这个问题,心好累。找了两天,终于解决了
android端 你的activity上的代码
main.we / main.vue 文件,也就是上面代码中的
main.js文件中的this.$getConfig()来获取传进来的参数其实很简单的问题,花了好久时间,希望社区能强壮起来,
另外一种方式 使用 WXModule方式
1.原生代码
2.JS里面的调用