EgretエンジンとAndroid端末のインタラクション---ホワイトチュートリアル(ピットを含む)
6765 ワード
,Egret 。 Html5 , js .ts TypeScrice 。
, , Egret Html5 SDK 。 , Html5 apk, apk SDK 。
android Html5 , ,html5 android js . android html5 , window js 。Html5 js android , 。
Egret , , 。
:Egret Native , , java , , android java , ?
:
:Egret 。 Egret IDE 。 :1. , Egret wind IDE ts , js, OC。 , , 。2. , , , , android 。
: window Egret apk. 。
Egret html5Demo , android , 。
:1. :properties.ini 2. .bat
:
############android ############ android_proj_name=Fish_Native_2 ############android ############ #1 D:\Html5ToAndroid\egret-android-support-3.0.0 #2 D:\Egret\egret-android-support-2.5.6 android_model=D:\Html5ToAndroid\egret-android-support-3.0.0
:
@echo off setlocal enabledelayedexpansion for /f "delims=" %%a in ('type "properties.ini"^| find /i "="') do ( set %%a ) cd /d "%~dp0" @set H5_path=%1 @set Android_path=%cd%\%android_proj_name% @echo H5 = %H5_path% @echo android = %Android_path% @echo android = %android_model% @echo ---------------- android ----------------------- @call egret create_app %Android_path% -f %H5_path% -t %android_model% pause
ステップ3:Egretエンドコードを作成し、Nativeから送信された情報をリスニングし、Nativeエンドに送信します.main.ts createGameScene :
this.setNativeListener();// android this.callAndroid();// android
:
private callAndroid():void{ egret.ExternalInterface.call("callAndroid","i am from Egret"); } private setNativeListener(): void{ egret.ExternalInterface.addCallback("sendToJS",function(message:string){ console.log("message from Native is = "+message); // main.ts this. this.showMessage(message);// }); } private showMessage(message:string):void{ console.log("showMessage----- message= " + message); }
最初の穴が開いたを行ないます., callback 。
private setNativeListener(): void{ egret.ExternalInterface.addCallback("sendToJS",this.sendToJScallback); } private sendToJScallback(message: string){ console.log("message from Native is = " + message); this.showMessage(message);// this. 。 } private showMessage(message:string):void{ console.log("showMessage----- message= " + message); }
ここにはjsのthisの参照メカニズムが含まれています.よくわかりませんが、このようなやり方が正しいかどうかは分かりません.どうせ正常に動作すればokです.私たちはテストに使うだけです.
: Egret Android 。
Eclipse , activity 。 Egret , Egret 。
private void setInterfaces() { // Egret(TypeScript)-Runtime(Java) // setRuntimeInterface(String name, IRuntimeInterface interface) runtime // callEgretInterface(String name, String message) Egret , gameEngine.setRuntimeInterface("sendToNative", new IRuntimeInterface() { @Override public void callback(String message) { Log.d(TAG, message); gameEngine.callEgretInterface("sendToJS", "A message from android"); } }); }
: android , log.
, Egret Native , 。 , string 。 json , , android json , Egret ? Json 。
Egret WebSocket ,Egret :JSON.
JSON :
一つはjson文字列をJSobjectに解析し,一つはJSObjectをjson文字列に変換することである.このapiがあれば、Egret側とAndroid側の通信プロトコルだけを定義します.