【问题标题】:Trying to open external link injected from javascript with InAppBrowser尝试使用 InAppBrowser 打开从 javascript 注入的外部链接
【发布时间】:2016-08-17 12:17:21
【问题描述】:

我之前处理过使用 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>

基本上,每三张卡片我都会添加一个新卡片,其中包含横幅和关联的 URL。

以前,我可以使用此过滤器制作链接:

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);
}

});

但是我还没有设法在这个上包含过滤器......而且它不起作用。关于这个有什么提示吗?。

编辑:URL 是这样存储的:

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

提前致谢

【问题讨论】:

  • 我不清楚你想要什么。您想获取另一个网站的 html 内容以将其读取为字符串吗?你想在不同的 web 视图中打开网站吗(InAppBrowser 会帮你)?
  • 不,我有一些 JavaScript 对象,其中一个成员是 URL。我希望 HTML 获取该 URL,以便它可以在我的应用程序之外打开。 InApp 允许在 App 外部打开,但您需要将 URL 传递为特定格式,以便正确解析。由于 href 需要一个 "-surrounded 字符串,因此无法正确注入。我想我已经找到了一种方法,但我仍在做一些测试

标签: javascript html cordova ionic-framework inappbrowser


【解决方案1】:

如果您使用 ionic 为什么不使用 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'

继续在依赖项中添加 ngcordova。

【讨论】:

  • 好吧,我已经在使用该插件,但无法对其进行管理,以便将 URL 加载到 HTML,然后在点击事件上正确处理。所以我不知道如何正确注入 URL 字符串并使用插件处理以打开它。
  • 似乎在抱怨字符串格式。我将重写我的代码以传递整个对象,看看它是怎么回事..
猜你喜欢
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-16
相关资源
最近更新 更多