尝试使用InAppBrowser打开从javascript注入的外部链接

时间:2016-08-17 12:17:21

标签: javascript html cordova ionic-framework inappbrowser

之前我曾使用InAppBrowser打开外部链接。现在,我正面临一个新问题。我有这个JS代码:

var randIndex = getRandomInt(0, bannersCollection.length - 1);
$scope.imgTitle = bannersCollection[randIndex].logo;
$scope.logoURL = bannersCollection[randIndex].url;

它为范围提供了新徽标和与该徽标相关联的URL,因此我希望能够单击徽标并导航到该URL。

我使用HTML代码执行此操作:

<div ng-if="$index % 3 == 0">
    <div class="card" ng-controller="cycleImagesCtrl">
        <a href={{logoURL}}>
            <div class="item item-body" style="margin-bottom: -7px;padding: 0px">
            <img src={{imgTitle}} width="100%" />
        </div>
    </a>
</div>

基本上,每三张卡我都会添加一个由横幅和相关网址组成的新卡。

之前,我可以使用此过滤器进行工作链接:

appFeria2016.filter('hrefToJS', function ($sce, $sanitize) {
return function (text) {
    var regex = /href="([\S]+)"/g;
    var newString = $sanitize(text).replace(regex, "onClick=\"window.open('$1', '_system', 'location=yes')\"");
    return $sce.trustAsHtml(newString);
}

});

但是我没有设法在此包含过滤器......但它不起作用。关于这一个的任何提示?。

编辑:网址存储方式如下:

{ logo: "img/bricomart-banner.png", url: "http://www.bricomart.com" },

提前致谢

1 个答案:

答案 0 :(得分:0)

如果您使用离子,为什么不使用this plugin。你所要做的就是:

$cordovaInAppBrowser.open('http://ngcordova.com', '_blank', options)
  .then(function(event) {
    // success
  })
  .catch(function(event) {
    // error
  });


$cordovaInAppBrowser.close();

然后处理事件:

'$cordovaInAppBrowser:loadstart'
'$cordovaInAppBrowser:loadstop'
'$cordovaInAppBrowser:loaderror'
'$cordovaInAppBrowser:exit'

保持ind以在依赖项中添加ngcordova。