Crosswalk是一个很好的包装器,可以将HTML5游戏打包为原生Android应用。您上传HTML,JS和CSS文件,并使用Chromium for Android包装它并构建APK。它具有完整的GPU支持,包括WebGL,使其远远优于PhoneGap。
我想在Crosswalk应用中使用Google Play游戏服务网络API,但看起来Crosswalk从原点 file:/// android_asset 运行。例如。主页面将从file:///android_asset/www/index.html。
运行似乎不允许Crosswalk应用程序使用Web API。 API控制台将file:/// android_asset拒绝为"无效的URI"。这有什么解决方法吗? Crosswalk是在Android上发布HTML5游戏作为原生应用的唯一合理方式,如果我们无法使用Google Play服务,那将是一种耻辱!
答案 0 :(得分:3)
JavaScript代码受同源政策的限制,因此您无法从原始文件访问Google Play服务(https://www.googleapis.com/ *):/// android_asset。 但Crosswalk为跨源xhr提供了解决方案,您可以通过在应用程序的清单中添加以下配置来轻松实现此目的。
{
...
"xwalk_hosts": [
"http://www.host-you-want-to-go.com/*"
],
...
}
wiki中的更多详情。
您必须在Crosswalk的最新测试版本6.35.131.5中尝试。
您也可以在crosswalk-help@lists.crosswalk-project.org上询问有关Crosswalk的帮助,您可以在其中获得更快的响应。
答案 1 :(得分:0)
我写了一个简单的例子,用cordova和人行横道访问Google Play游戏服务。见https://github.com/rscohn2/phonegapi
使用cordova,您可以为登录创建一个浏览器窗口,并将http://localhost
作为重定向URI。成功登录后,它会重定向到http://localhost
,
哪个不存在。该应用检测到浏览器窗口已重定向。它读取访问代码,然后在用户看到错误之前关闭窗口。