我正在使用cordova
开发混合移动应用程序。当我点击一个按钮时,我需要在网站上打开一个网址。为此,我使用的window.open
在浏览器中工作正常,但即使在添加inappbrowser
插件后也无法在移动应用程序中运行。
下面我提供了我正在运行的代码:
<button type="submit" class="btn btn-primary btn-sm" id="myButton">Get Free Trial</button>`
document.getElementById("myButton").onclick = function () {
window.open("https://indirect-tax.com",'_system');
};
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
window.open = cordova.InAppBrowser.open;
}
答案 0 :(得分:0)
我们针对全局重定向a
代码的指令解决方案,我们使用了与您相同的插件,而没有重新定义window.open
。您可以对其进行修改以添加规则,此版本仅重定向带有{&#34; http&#34;开头的href
的链接,还会评估最终将放置在ngClick
属性中的代码(您为了安全起见,应删除它,这是一个测试版本。)
angular
.module('yourModule')
.directive('a', function () {
return {
restrict: 'E',
link: function (scope, element, attrs) {
if ( !attrs.href ){
return;
}
var url = attrs.href;
if ( url.lastIndexOf('http',0) === 0 ){
element.on('click',function(e){
e.preventDefault();
if(attrs.ngClick){
scope.$eval(attrs.ngClick);
}
window.open(encodeURI(url), '_system');
});
};
}
};
});