Angularjs ios和blackberry中的Cordova InApp浏览器插件问题
我正在为BB10、android、iod和windows8开发cordova应用程序 其中我有在默认设备浏览器中打开url的要求 为此,我使用了org.apache.cordova.inappbrowser插件 但在使用它之后,我遇到了一个问题,即一旦我从浏览器返回,就重新启动应用程序。 [除windows8外的所有平台都存在问题] 所以我用了下面的解决方案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) {
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');
});
}