3

Crosswalk是一个出色的包装器,允许将 HTML5 游戏打包为原生 Android 应用程序。你上传你的 HTML、JS 和 CSS 文件,它用 Chromium for Android 包装它并构建一个 APK。它具有包括 WebGL 在内的完整 GPU 支持,比 PhoneGap 好得多。

我想在 Crosswalk 应用程序中使用 Google Play Game Services Web API,但似乎 Crosswalk 是从源文件:///android_asset运行的。例如,主页面将从 file:///android_asset/www/index.html 运行。

似乎不允许 Crosswalk 应用程序使用 Web API。API 控制台将 file:///android_asset 拒绝为“无效 URI”。有什么解决方法吗?Crosswalk 是在 Android 上将 HTML5 游戏作为原生应用发布的唯一明智方式,如果我们不能使用 Google Play 服务,那就太可惜了!

4

2 回答 2

3

JavaScript 代码受同源策略限制,因此您无法从源文件:///android_asset 访问 Google play 服务(https://www.googleapis.com/ *)。但是 Crosswalk 已经为跨域 xhr 提供了解决方案,您可以通过将以下配置添加到应用程序的清单中轻松实现。

{
  ...
  "xwalk_hosts": [
    "http://www.host-you-want-to-go.com/*"
  ],
  ...
}

更多细节在wiki中。

您必须在 Crosswalk 的最新 beta 版本 6.35.131.5 中试用。

您也可以在 crosswalk-help@lists.crosswalk-project.org 上寻求有关 Crosswalk 的帮助,您可以在其中获得更快的响应。

于 2014-05-20T08:59:43.707 回答
0

我写了一个简单的例子,用cordova和crosswalk访问google play游戏服务。请参阅https://github.com/rscohn2/phonegapi 使用cordova,您可以为登录创建一个浏览器窗口,并提供http://localhost重定向URI。成功登录后,它会重定向到http://localhost不存在的 。该应用程序检测到浏览器窗口已重定向。它读取访问代码,然后在用户看到错误之前关闭窗口。

于 2014-05-29T15:03:40.517 回答