我无法触发cordova inAppBrowser来打开网址

时间:2017-05-27 19:58:48

标签: android cordova inappbrowser

在我的应用程序中,我在转发器中有一个指令,该指令显示用户的URL。

我的代码如下:

var onDeviceReady;

onDeviceReady = function() {
  console.log("this was called");
  return window.open = cordova.InAppBrowser.open;
};

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

并在html中

<a href="#" on-click="window.open('{{data.url}}', '_blank', 'location=yes');">{{data.url}}</a>

当我尝试在Android设备上打开应用程序时,控制台消息被正确打印(意味着应该调用该函数),但所有URL都没有打开。

我的索引文件看起来像这样(如果有用):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <meta http-equiv="Content-Security-Policy"
          content="default-src * gap://ready file: data:; style-src 'self' 'unsafe-inline' *; font-src 'self' data: https://fonts.gstatic.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *">
    <title></title>
    <link href="css/bower.css" rel="stylesheet" id="bower-css">
    <link href="css/style.css" rel="stylesheet" id="style-css">
</head>

<body ng-app="myApp" ng-strict-di>
   <ion-nav-view class="slide-left-right" animation="slide-left-right"></ion-nav-view>

<script src="js/bower.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/templates.js"></script>
</body>
</html>

我目前安装的插件如下:

  

cordova-plugin-inappbrowser 1.7.1“InAppBrowser”

     

cordova-plugin-whitelist 1.3.2“白名单”

2 个答案:

答案 0 :(得分:1)

问题是on-click

您可以使用html onclick或角度ng-clickon-tap,但on-click不存在

此外,您不需要onDeviceReady的退货,但这并不能阻止它工作。

答案 1 :(得分:0)

我终于设法让它在最后工作。

基本上,我更换了

ng-click="window.open('{{data.url}}', '_blank', 'location=yes');">

有一个功能:

ng-click="openRUL({{data.url}})">

然后函数看起来像这样:

$scope.openURL = function (url){
  window.open(url, '_blank', 'location=yes')
}

现在它的工作非常好。