弹出窗口在Ionic-v1 InAppBrowser中无法打开

时间:2017-08-09 16:32:31

标签: cordova ionic-framework popup android-webview inappbrowser

我是IONIC的新手并尝试在我的Ionic应用中实施支付网关。我在外部URL中设置了所有内容,只是通过InAppBrowser将其加载到应用程序。一切看起来都很好,特别是万事达卡,直到客户决定使用Vis卡进行支付,其中包括Visa(VBV / 3DS弹出窗口)需要验证的付款,作为其交易流程的一部分。

现在问题是:弹出窗口不会出现在InAppBrowser中。我曾尝试使用iframe,它完全相同。我已经调查了Cordova Documentation on InAppBrowser但没有帮助。

我的配置中

`

<access origin="*"/>
  <allow-navigation href="*" />
  <preference name="webviewbounce" value="false"/>
  <preference name="UIWebViewBounce" value="false"/>
  <preference name="DisallowOverscroll" value="true"/>
<preference name="BackupWebStorage" value="none"/>

`

2 个答案:

答案 0 :(得分:0)

TL; DR:正式的Cordova InAppBrowser(IAB)插件不支持弹出窗口。

尝试使用IAB在Cordova应用中显示包含Braintree JS SDK的网页时遇到了同样的问题。

Braintree(现在是PayPal的子公司)创建了一个&#34; PopupBridge&#34;它允许移动应用程序WebViews在浏览器中打开弹出窗口,并模拟父(WebView)和子(浏览器)页面之间的跨框架通信。 AndroidiOS都有版本。但是,他们的工作主要针对原生应用,而不是Cordova应用。

所以我创建了cordova-plugin-inappbrowser-popup-bridge,它增加了对Braintree的PopupBridge功能的支持到Cordova的InappBrowser。这使得在基于Cordova的Android和iOS应用程序的InappBrowser元素的上下文中支持Braintree支持的PayPal支付成为可能。

可以看到我在创建的proof-of-concept example Cordova app中工作,这会在IAB WebView中打开Braintree PopupBridge Example webpage

Braintree的iOS PopupBridge依赖于WKWebView(iOS 8以来的新iOS WebView),但官方的Cordova IAB插件仍然使用较旧的UIWebView。所以在我的IAB分叉版本中,我重写了iOS IAB插件,使用WKWebView而不是UIWebView。

答案 1 :(得分:0)

经过这么多努力,我联系了webpay服务提供商,他们在iFrame上进行重定向(弹出)加载,而不是试图在新窗口加载它。 这就解决了我的问题。