Используйте Google PaymentRequest на локальном сайте, работающем в эмуляторе Android
Я пытаюсь протестировать API Google PaymentRequest на локальном веб-сайте, запущенном в моем эмуляторе Android. Тем не менее, когда я делаю
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. Есть идеи как обойти это?
2 ответа
PaymentRequest должен использоваться в безопасном контексте, который является одним из:
- HTTPS.
- Localhost.
- Локальный файл на диске.
http: // 10.2.2.01:8000 не является безопасным контекстом, поэтому вы не можете использовать PaymentRequest там. Попробуйте одно из следующего:
- https: //10.2.2.01:8000. (Сертификат SSL должен быть действительным. Это означает, что значок замка в строке URL-адреса должен быть зеленым. Вы можете получить его, например, по https://letsencrypt.org/.)
- https: // localhost: 8000.
- Файл:///sdcard/index.html
Если у вас есть устройство Android, есть способ протестировать свой сайт, подключив устройство через USB-кабель и обслуживая с локального хоста. Попробуй это:
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
Если вы этого не сделаете, вы можете попробовать этот инструмент с эмулятором:
ngrok позволяет обслуживать прокси-сервер localhost с домена ***.ngrok.com.