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

Posted

技术标签:

【中文标题】可以从原始文件:///android_asset 使用 Google Play 游戏服务【英文标题】:Possible to use Google Play Game Services from origin file:///android_asset 【发布时间】:2014-06-19 00:53:16 【问题描述】:

Crosswalk 是一个出色的包装器,允许将 html5 游戏打包为原生 android 应用程序。你上传你的 HTML、JS 和 CSS 文件,它用 Chromium for Android 包装它并构建一个 APK。它具有包括 WebGL 在内的完整 GPU 支持,比 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 服务,那就太可惜了!

【问题讨论】:

你是如何调用 google play 游戏 API 的?你能分享一些sn-p的代码吗? REST API 在人行横道构建中工作,这是一个示例:jsbin.com/matac/2/edit 根据示例/文档。该代码只是发出 AJAX 请求,问题是 API 控制台允许的来源。 【参考方案1】:

javascript 代码受同源策略限制,因此您无法从源文件:///android_asset 访问 Google Play 服务(https://www.googleapis.com/*)。 但是 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 的帮助,您可以在其中获得更快的响应。

【讨论】:

这个选项有效吗?它不适用于我的最新版本 13.42.*。【参考方案2】:

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

【讨论】:

以上是关于可以从原始文件:///android_asset 使用 Google Play 游戏服务的主要内容,如果未能解决你的问题,请参考以下文章

应用程序错误 - 与服务器的连接不成功。 (文件:///android_asset/www/index.html)

Android 设备上的“找不到网页”“找不到文件:///android_asset/html-nl/index.html”错误

Ionic 应用程序在浏览器和 ios 上运行,但不在 android 上,与服务器的连接不成功。 (文件///android_asset/www/index.html)在android上

Kitkat 杀死:不允许加载本地资源:file:///android_asset/webkit/android-weberror.png

从monodroid类库中访问资产

从资产中读取文件