溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

egret 發(fā)布android原生項目(三)JS與原生通訊

發(fā)布時間:2020-03-24 09:59:15 來源:網(wǎng)絡 閱讀:1484 作者:wty530 欄目:游戲開發(fā)

JS與Java通信

JS向Java發(fā)送消息

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發(fā)送消息:

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

Java向JS發(fā)送消息

JS注冊接收消息的方法:

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

Java發(fā)送消息:

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

注意

需要先注冊接收消息的方法,才能接收到另一端發(fā)送的消息。

在應用剛啟動時,JS可能沒有加載完,這是向JS發(fā)送消息是不能接收到的??梢栽谟螒虼a中先向Java發(fā)送消息通知Java端接收方法已經(jīng)注冊完成,再向JS發(fā)送消息。

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

具體實現(xiàn)步驟

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

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

egret 發(fā)布android原生項目(三)JS與原生通訊

并在按鈕事件發(fā)送消息

egret 發(fā)布android原生項目(三)JS與原生通訊

2、回到android studio,MainActivity.java已經(jīng)實現(xiàn)了消息的注冊,并發(fā)送消息到js

egret 發(fā)布android原生項目(三)JS與原生通訊

3、編譯項目

egret 發(fā)布android原生項目(三)JS與原生通訊

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

Native get message: message from JS

,說明整個流程是通的

egret 發(fā)布android原生項目(三)JS與原生通訊


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI