日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Egret引擎与Android端的交互----小白教程(含坑)

發布時間:2023/12/29 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Egret引擎与Android端的交互----小白教程(含坑) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ?最近在接觸一個新事物,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 enabledelayedexpansionfor /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 第三步:編寫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);}
?這里面引發了第一個坑,this.的引用。 為了應對這個坑,可以使用另一種方式實現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() {@Overridepublic 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端的通訊協議了。

? ? ? ? ?

總結

以上是生活随笔為你收集整理的Egret引擎与Android端的交互----小白教程(含坑)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲一区久久 | 免费无码肉片在线观看 | 国产伦精品一区二区三区网站 | 日本欧美国产一区二区三区 | 狠狠综合久久av一区二区 | 欧美日韩国产精品 | 亚州国产精品视频 | 奇米影音 | 日本bbwbbw | 小视频在线播放 | 91黄免费 | 天堂av官网 | 国产一区亚洲二区 | 毛片网页| 日韩大片在线 | 中国1级毛片 | 色偷偷欧美 | 国产欧美日韩成人 | 国产吃瓜黑料一区二区 | 91网页在线观看 | 禁断介护av一区二区 | 黄色在线播放 | 精品久久久无码中文字幕 | 麻豆成人入口 | 疯狂做受xxxx国产 | 自拍偷拍国内 | 三上悠亚 电影 | 亚洲黄色三级视频 | 大陆av在线播放 | 1024金沙人妻一区二区三区 | av免费看网站| 欧美三级又粗又硬 | 丁香婷婷综合激情 | 涩涩亚洲| 国产18精品乱码免费看 | 337p日本欧洲亚洲大胆精筑 | 日韩r级电影在线观看 | 在线男人天堂 | 国产成人精品在线播放 | 美女被c出水 | 亚洲白浆| 久久精品这里有 | 久久久久久视 | 在线电影一区二区 | 天天天天天天天天干 | 国产视频在线观看网站 | 国产又黄又爽又色 | 三级色视频 | 久草免费福利视频 | 美国黄色网址 | 欧美另类色图 | 在线观看毛片视频 | 男人的天堂色偷偷 | 日日摸夜夜添狠狠添久久精品成人 | 中文字幕人妻一区二区在线视频 | 久久久久亚洲AV成人无在 | 天美麻花果冻视频大全英文版 | 国产欧美日韩视频 | 色婷婷激情av | 国产伦精品一区二区三区视频1 | 亚洲av无码一区二区三区网站 | 欧美精品啪啪 | 婷婷在线综合 | 激情视频国产 | 亚洲jizzjizz日本少妇 | 精品欧美在线观看 | xxx国产精品| 黄色av免费播放 | 亚洲男人天堂网站 | 免费一级suv好看的国产网站 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 水蜜桃影库 | 91新网站 | 视频一区二区欧美 | 老司机午夜精品视频 | 黑人巨大精品欧美一区二区蜜桃 | 最新av导航 | 欧美wwwwww| 天天射天天干天天操 | 久久亚洲精少妇毛片午夜无码 | 牛人盗摄一区二区三区视频 | 人妻色综合网站 | 黄色福利视频 | 最新色站 | 日本不卡免费在线 | 白丝动漫美女 | 国产精品爽爽久久久久久 | 狠狠干2021| 久久久久久久久久91 | 久草网在线观看 | 中字幕视频在线永久在线观看免费 | 丰满熟妇肥白一区二区在线 | 粉嫩av一区二区三区 | 欧美sese| 亚洲区第一页 | 中文字幕一区二区三区免费 | 内地级a艳片高清免费播放 91在线精品一区二区 | 欧美黄色精品 | 亚洲一区二区视频网站 |