根据官方文档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即可运行。