2016-10-28 8 views
12

Я пытался получить Stripe checkout, работая с Cordova iOs 4.2.0, и мне не повезло. Последняя версия ICO в Кордове, с которой она работает, - 3.9.2. Для проверки я сделал пустой привет мира Cordova приложения и добавил этот код для полоски (проверена на КСНЕ 9 и 10):Использование Stripe Checkout с Cordova ios 4.0.0+

<script 
    src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
    data-key="xxxxxxx" 
    data-amount="999" 
    data-name="Oki Technologies Inc" 
    data-description="Widget" 
    data-locale="auto" 
    data-currency="cad"> 

Сейчас она прекрасно работает на Кордове Ios 3.9.2, но на 4.0 .0+ у него просто пустой iframe с темным наложением. Я думаю, что он пытается открыть всплывающее окно на новой вкладке, такой как мобильная сеть, а не как всплывающее окно, как это предполагается делать в приложении. Я надеюсь, что есть пользовательский агент или что-то, что я могу подделать, чтобы заставить его работать, так как он отлично работает на веб-сайте android/cordova, а также на iphone в Интернете. Есть ли способ заставить это работать?

Я сделал тест репо здесь, что кто-то может клонировать испытать https://github.com/HockeyCommunity/stripe

+0

Может быть ошибкой вызвана некоторыми изменениями на стороне Кордовы. Вы проверили консоль, чтобы проверить, не возникли ли какие-либо ошибки? Единственная мысль, которая приходит ко мне, - это то, что кордова может блокировать внешние ресурсы от определенного доступа в качестве меры безопасности. – 16patsle

+0

@ 16patsle да нет никаких ошибок, я почти уверен, что что-то блокируется. Я надеялся, что есть способ обойти его, возможно, подделывая другую строку пользовательского агента, но я еще ничего не нашел. Это позор, потому что для iOS я все еще использую cordova ios 3.9.2 –

+1

Я бы предположил, что вам придется использовать браузер In-App для загрузки небезопасных ресурсов, вызванных кнопкой или чем-то в вашем основном приложении. – 16patsle

ответ

6

Я стучал головой о стену в течение нескольких дней в поисках решения этого. Решение было добавить следующие две строк в мой config.xml файл:

<access origin="*" /> <allow-navigation href="https://*.stripe.com/*" />

Надеется, что это помогает!

EDIT: Обновленное решение с предложением от @TateThurston

+0

В итоге я перешел на элементы stripe/v3, но это тоже работает –

+0

Я не могу выдвинуть это достаточно. Я шел по кроличьей дыре. Спасибо. –

+0

@adlondon, как вы пришли к этому решению? Я бы не сделал соединение с документами: https://cordova.apache.org/docs/en/latest/config_ref/#allow-navigation –

Смежные вопросы