美文网首页
eros开发之vue页面和Android的activity之间的

eros开发之vue页面和Android的activity之间的

作者: 码字与律动 | 来源:发表于2018-07-24 10:55 被阅读68次

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();
    }
}

相关文章

网友评论

      本文标题:eros开发之vue页面和Android的activity之间的

      本文链接:https://www.haomeiwen.com/subject/rmgwuftx.html