1、自定义Module
/*
* 创建者 weihao2
* 创建时间 2018/7/7 11:44
*/
public class MyModule extends WXModule {
@JSMethod(uiThread = true)
public void printLog(String msg, JSCallback callback) {
//weex 传来的数据
// Toast.makeText(mWXSDKInstance.getContext(), msg, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(mWXSDKInstance.getContext(), DemoActivity.class);
intent.putExtra("callback", callback);
mWXSDKInstance.getContext().startActivity(intent);
}
@JSMethod(uiThread = false)
public void nativeCallBack(JSCallback callback) {
//回调信息
callback.invoke("I am callback message");
}
}
2、App onCreate中注册
//初始化Weex
InitConfig config = new InitConfig.Builder().setImgAdapter(null).build();
WXSDKEngine.initialize(this, config);
try {
//通信方法 myModule是weex调用原生的方法名
WXSDKEngine.registerModule("myModule", MyModule.class);
} catch (WXException e) {
e.printStackTrace();
}
3、编写index.vue 内容
<template>
<div>
<text @click="onClick">Android Toast</text>
<text @click="onCallBack">CallBack</text>
</div>
</template>
<script>
export default {
methods: {
onClick: function() {
weex.requireModule("ZXingModule").printLog("我是一个测试!",(res)=>{
this.$notice.toast({
message:'activity页面的数据 : '+res
})
});
},
onCallBack: function() {
let func = weex.requireModule("ZXingModule");
func.nativeCallBack(function(event) {
//回调后处理
func.printLog("回调: " + event);
});
}
}
};
</script>
4、Activity中的代码
public class ZXingActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zxing);
}
public void back(View view) {
Intent intent = getIntent();
JSCallback callback = (JSCallback) intent.getSerializableExtra("callback");
callback.invoke("ZXingActivity的数据");
finish();
}
}
网友评论