1

我正在尝试在我的 android 模拟器中运行的本地网站上测试 Google 的 PaymentRequest api。但是,当我这样做时

var paymentRequest = window.PaymentRequest(//some object here//);

我收到以下错误

"Error: Failed to construct 'PaymentRequest': Must be in a secure context

现在,PaymentRequest 确实在 localhost 和 https 上运行,但从 android 模拟器上的端口运行它,uri 所在的端口10.2.2.01:8000/myUrlHere将失败,因为它不是 localhost。关于如何解决这个问题的任何想法?

4

2 回答 2

3

PaymentRequest 必须在安全上下文中使用,它是以下之一:

  1. HTTPS。
  2. 本地主机。
  3. 磁盘上的本地文件。

http://10.2.2.01:8000 不是安全上下文,因此您不能在那里使用 PaymentRequest。尝试以下方法之一:

  1. https://10.2.2.01:8000。(SSL 证书必须是有效的。这意味着 URL 栏中的锁定图标应该是绿色的。例如,您可以从https://letsencrypt.org/获取一个。)
  2. https://localhost:8000。
  3. 文件:///sdcard/index.html
于 2017-10-16T13:10:35.247 回答
2

如果您拥有 Android 设备,则可以通过 USB 电缆连接设备并从 localhost 提供服务来测试您的站点。试试这个:

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/

如果你不这样做,你可能想用模拟器试试这个工具:

https://ngrok.com/

ngrok 允许您从 ***.ngrok.com 域的 localhost 代理服务。

于 2017-09-29T01:34:50.807 回答