可以从源文件:/// android_asset使用Google Play游戏服务

时间:2014-05-02 10:54:27

标签: javascript html5 google-play-services google-play-games crosswalk-runtime

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服务,那将是一种耻辱!

2 个答案:

答案 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, 哪个不存在。该应用检测到浏览器窗口已重定向。它读取访问代码,然后在用户看到错误之前关闭窗口。