javascript - 如何使用 cordova/phonegap 在 inApp 浏览器中打开 Paypal

标签 javascript android cordova phonegap-cli

我正在 PhoneGap 中使用 JavaScript 集成 PayPal 集成,但我遇到了一个问题,即它无法在 inApp 浏览器中打开。相反,它是在我的应用程序之外打开的。所以我希望在 inApp 浏览器中打开 PayPal URL。
我是 PhoneGap 的新手,所以如果有人知道请帮忙。下面是代码

<form id="openpaypal" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="NSH74TD463ZSU">
<input type="image" src="https://www.paypalobjects.com/en_GB/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal – The safer,  easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1">
</form>

//script here

<script>
        document.getElementById("openpaypal").addEventListener("click", openBrowser);

        function openBrowser() {
            alert("called here");
            var url = 'https://www.paypal.com/cgi-bin/webscr';
            var target = '_blank';
            var options = "location=yes"
            var ref = cordova.InAppBrowser.open(url, target, options);

            ref.addEventListener('loadstart', loadstartCallback);
            ref.addEventListener('loadstop', loadstopCallback);
            ref.addEventListener('loadloaderror', loaderrorCallback);
            ref.addEventListener('exit', exitCallback);

            function loadstartCallback(event) {
                console.log('Loading started: ' + event.url)
            }

            function loadstopCallback(event) {
                console.log('Loading finished: ' + event.url)
            }

            function loaderrorCallback(error) {
                console.log('Loading error: ' + error.message)
            }

            function exitCallback() {
                console.log('Browser is closed...')
            }
        }
    </script>

最佳答案

对于 Cordova 命令

先添加插件

Here是链接

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

这是你的脚本

<script src="assets/js/cordova.js" type="text/javascript"></script> 
<script src="assets/js/min/app.js" type="text/javascript"></script>

但是在构建应用程序时 cordova.js 自动添加到 www 文件夹的根路径

所以像下面这样添加

<script src="cordova.js" type="text/javascript"></script> 

对于 PhoneGap 构建

将此行添加到 config.xml 文件

<plugin name="org.li8.inappbrowser" spec="0.1" source="pgb" />

设置脚本

<script src="phonegap.js" type="text/javascript"></script> 

已编辑

在设备准备好后调用你的函数可能会给你带来问题

document.addEventListener("deviceready",onDeviceReady,false);

function onDeviceReady()
{
    document.getElementById("openpaypal").addEventListener("click", openBrowser);
}

function openBrowser() 
{
    var url = 'https://www.paypal.com/cgi-bin/webscr';
    var target = '_blank';
    var options = "location=yes";
    var ref = window.open(url, target, options);
}

关于javascript - 如何使用 cordova/phonegap 在 inApp 浏览器中打开 Paypal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41136239/

相关文章:

javascript - 如何处理 AngularJS 服务中的回调

javascript - 如何在 MongoDB 中对聚合查询结果进行分页并获取总文档数(Node.js + Mongoose)?

javascript - 动态生成表格后单击时难以调用 JavaScript 函数

javascript - 在 Angular Cordova 应用程序中的一个请求中发布多个文件

Android Studio : Neither path nor baseDir may be null or empty string. 路径 ='null' basedir ='/Users/.../app'

java - 获取空对象引用但 ArrayList 已初始化

java - 应用程序因模拟方法调用而挂起

ios - 无法使用 CLI 构建 Cordova iOS 项目,但可以构建/运行 Xcode 项目

javascript - Cordova Google WebView SSL 错误处理程序警报

javascript - 向无Chrome Youtube添加控制按钮?