根據官方文檔http://developer.egret.com/cn/github/egret-docs/Native/native/hybrid/hybrid/index.html
將現有的項目發布成Hybird。
發布成功之后,使用xcode打開xcworkspace工程。
然后點擊運行按鈕。成功調用啟動了iphone模擬器,但是內容確實一片空白,即手機模擬器屏幕上顯示的是一片空白。
到這里為止,我再次回到官方文檔查看。
逐個排查工程模版。
1.默認工程是從本地啟動游戲。
我沒有做任何改動,那就是從本地啟動游戲。
1.1 啟動流程
1.1.1初始化EgretWebViewLib;
[EgretWebViewLib initialize:@"/egretGame/preload/"]; // "/egretGame/preload/"是緩存目錄,在應用的document目錄下。
成功;
1.1.2檢查游戲資源是否已經部署到本地服務器;
[EgretWebViewLib checkLoaded:zipFilePath Host:host] // zipFilePath是游戲資源zip的絕對路徑 // host是游戲映射到哪個url下,如host為"https://egret.com/game/",對應的游戲url為"https://egret.com/game/index.html"
這里要怎么部署到本地服務器呢?這里的游戲資源是指什么?如果需要將游戲資源部署到本地服務器,那么本地服務器是指那個什么服務?是否需要手動重新啟動一個本地服務?
1.1.3 將游戲資源部署到本地服務器
ZipFileLoader* loader = [EgretWebViewLib createZipFileLoader:zipFilePath Host:host Delegate:self]; [loader start];
這里是否只需要調用了這一句,就會將資源部署到本地服務器?如果是的話,那么是將什么資源部署到本地服務器?這個肯定需要一個源文件放上去,這個源文件在哪里?
1.1.4 啟動游戲 包括了啟動本地服務器, 啟動游戲。
[EgretWebViewLib startLocalServer]; // 啟動本地服務器 [EgretWebViewLib startGame:gameUrl SuperView:self.view]; // 啟動游戲
這里的1.1只是一種啟動方式,另外還有如下3種啟動方式:
啟動方式2:直接啟動游戲
[EgretWebViewLib startGame:gameUrl SuperView:self.view]; // gameUrl是游戲的url地址
啟動方式3:從Resources目錄啟動游戲(0.1.11版本添加)
[EgretWebViewLib startLocalServerFromResource]; [EgretWebViewLib startGame:indexFilePath SuperView:self.view]; // indexFilePath是游戲的index.html文件相對於Resources的路徑
如下圖所示,indexFilePath為”game/index.html”。需要確認游戲資源目錄已經添加到”Copy Bundle Resources”中。


啟動方式4:下載游戲資源到本地,從本地啟動游戲
1.檢查本地游戲資源版本(根據文件名判斷是否加載過)
[EgretWebViewLib checkLoaded:];
2.下載游戲資源
ZipFileLoader* loader = [EgretWebViewLib createZipFileLoader: Delegate:]; [loader start];
3.啟動本地服務器和游戲
[EgretWebViewLib startLocalServer]; [EgretWebViewLib startGame: SuperView:];
到此,我還是沒有看到我應該如何處理才能夠跑得起來。
----------------------------上面都是廢話---------------------------
改成使用ios,而不是hybird方案。
然后發布web包,將web包的release里面的放到ios工程的game目錄下,將代碼里面使用localhost即可運行。
