egret 發佈android原生項目(三)JS與原生通訊

JS與Java通信

JS向Java發送消息

Java註冊接收消息的方法:

nativeAndroid.setExternalInterface("sendToNative", new INativePlayer.INativeInterface() {
    @Override
    public void callback(String message) {
        String str = "Native get message: ";
        str += message;
        Log.d(TAG, str);
    }
});

JS發送消息:

egret.ExternalInterface.call("sendToNative", "message from JS");

Java向JS發送消息

JS註冊接收消息的方法:

egret.ExternalInterface.addCallback("sendToJS", function(msg) {
    console.log(msg);
});

Java發送消息:

nativeAndroid.callExternalInterface("sendToJS", "message from Java");

注意

需要先註冊接收消息的方法,才能接收到另一端發送的消息。

在應用剛啓動時,JS可能沒有加載完,這是向JS發送消息是不能接收到的。可以在遊戲代碼中先向Java發送消息通知Java端接收方法已經註冊完成,再向JS發送消息。

------------------------------------------

具體實現步驟

1、在Demo項目Main.ts文件createGameScene方法最後添加註冊消息的方法

如果接收到java發送過來的消息,將colorLabel文本由Hello Egret修改爲java端發送過來的字符串

image.png

並在按鈕事件發送消息

image.png

2、回到android studio,MainActivity.java已經實現了消息的註冊,併發送消息到js

image.png

3、編譯項目

image.png

4、在android手機上運行項目,查看結果,可以觀察到點擊Click2!之後,將colorLabel文本由Hello Egret修改爲

Native get message: message from JS

,說明整個流程是通的

image.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章