native怎么向weex传参 和 weex怎么使用native的传参

想通过native传参数给weex
看demo里注释说是通过
render(pageName,template,options,jsonInitData,flag)
这个方法里面的option对象来传值,但是在weex中要如何使用,一直没找到相关的demo和文档或者api

阅读 6.3k
2 个回答

都没有人来回答这个问题,心好累。找了两天,终于解决了

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()来获取传进来的参数

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;
     });
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏