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端發送過來的字符串
並在按鈕事件發送消息
2、回到android studio,MainActivity.java已經實現了消息的註冊,併發送消息到js
3、編譯項目
4、在android手機上運行項目,查看結果,可以觀察到點擊Click2!之後,將colorLabel文本由Hello Egret修改爲
Native get message: message from JS
,說明整個流程是通的