Angularjs ios和blackberry中的Cordova InApp浏览器插件问题

Angularjs ios和blackberry中的Cordova InApp浏览器插件问题,angularjs,ionic-framework,cordova-plugins,inappbrowser,Angularjs,Ionic Framework,Cordova Plugins,Inappbrowser,我正在为BB10、android、iod和windows8开发cordova应用程序 其中我有在默认设备浏览器中打开url的要求 为此,我使用了org.apache.cordova.inappbrowser插件 但在使用它之后,我遇到了一个问题,即一旦我从浏览器返回,就重新启动应用程序。 [除windows8外的所有平台都存在问题] 所以我用了下面的解决方案 jQuery(document).delegate('.external', 'click', function(e) {

我正在为BB10、android、iod和windows8开发cordova应用程序

其中我有在默认设备浏览器中打开url的要求

为此,我使用了org.apache.cordova.inappbrowser插件

但在使用它之后,我遇到了一个问题,即一旦我从浏览器返回,就重新启动应用程序。 [除windows8外的所有平台都存在问题]

所以我用了下面的解决方案

jQuery(document).delegate('.external', 'click', function(e) {
        window.open(e.target.href, '_system', 'location=yes');
        e.preventDefault();
});

<a class="external" href="myUrl">Track Now</a>
jQuery(document).delegate('.external','click',函数(e){
打开(e.target.href,“_system”,“location=yes”);
e、 预防默认值();
});
有了上述解决方案, 安卓:它工作得很好。 Blackberry10问题:Url未在外部浏览器中打开,它仅在应用程序浏览器中打开, IOS问题:url根本不工作(当我点击链接时,什么也没发生)


因此,非常感谢您的任何帮助。

在我看来,使用jquery来完成这项工作是不必要的。您可以尝试类似的方法,但我只在Android和iOS上进行了测试:

在控制器中:

$scope.openLink = function(url){
   window.open(url, '_system');
};
html:



让我知道如果在BB上也有效

是的,下面是我案例的解决方案。 它在所有android、BlackBerry10和IOS平台上都运行良好

通过添加blackberry调用插件解决blackberry问题

function openBlackBerryBrowser(url) {
            function onInvokeSuccess() {
                alert("Invocation successful!");
            }
            function onInvokeError(error) {
                alert("Invocation failed, error: " + error);
            }
            blackberry.invoke.invoke({
                target: "sys.browser",
                uri: url
            }, onInvokeSuccess, onInvokeError);
    }
    if (window.device.platform.toLowerCase().indexOf('blackberry') > -1) {        
        jQuery(document).delegate('.external', 'click', function(e) {
            openBlackBerryBrowser(e.target.href);
        });
    } else {        
        jQuery(document).delegate('.external', 'click', function(e) {
            e.preventDefault();
            var ref = window.open(e.target.href, '_system', 'location=yes');
        });
    }

希望这会对某人有所帮助。

您可能会发现这很有用。它消除了jQuery依赖性:实际上,我以前也尝试过同样的方法,但它产生了我在文章中提到的问题(应用程序重新启动问题)。我不知道为什么。我们使用的是角度和离子,所以可能只是猜测有问题。
function openBlackBerryBrowser(url) {
            function onInvokeSuccess() {
                alert("Invocation successful!");
            }
            function onInvokeError(error) {
                alert("Invocation failed, error: " + error);
            }
            blackberry.invoke.invoke({
                target: "sys.browser",
                uri: url
            }, onInvokeSuccess, onInvokeError);
    }
    if (window.device.platform.toLowerCase().indexOf('blackberry') > -1) {        
        jQuery(document).delegate('.external', 'click', function(e) {
            openBlackBerryBrowser(e.target.href);
        });
    } else {        
        jQuery(document).delegate('.external', 'click', function(e) {
            e.preventDefault();
            var ref = window.open(e.target.href, '_system', 'location=yes');
        });
    }