【问题标题】:Ionic 2 InAppBrowser won't load inserted linksIonic 2 InAppBrowser 不会加载插入的链接
【发布时间】:2017-05-31 12:04:49
【问题描述】:

到处寻找答案。我的应用程序具有从 AJAX 加载内容时动态插入的链接。

我希望用户单击的所有链接都在 InAppBrowser 或系统浏览器中打开。但是,一切都在 Web 视图中打开。

我尝试了很多东西。

gap:// 在内容策略中 URL 已正确编码 在app.component.ts 中做了一个window.open = (url, target?, opts?) => this.iab.create(encodeURI(url), '_blank', 'location=yes,hidden=no');

我的其他代码可以在单击链接正确打开 InAppBrowser 的情况下工作,但这似乎不适用于常规链接 <a href

每个人似乎都对 InAppBrowser 有某种问题,解决此问题的最终方法是什么!?

【问题讨论】:

  • 进一步调试 window.open() 工作正常,但单击内容内的链接不会触发 window.open 它只是导航到 Web 视图中的链接。

标签: javascript angular ionic2 inappbrowser


【解决方案1】:

我做了如下的工作

  1. 请确保已添加 InAppBrowser 插件
  2. 为组件添加代码以处理点击事件
  3. 在视图中,我为动态内容添加和单击事件

handleClick(event) {
      if(this.platform.is('core'))
        return;
      if (event.target.tagName == "A") { 
          event.preventDefault();
          event.stopPropagation();
      // open link using inappbrowser
        var url = event.target.getAttribute('href');
        console.log(url);
        this.platform.ready().then(() => {
                    let browser = new InAppBrowser(url, '_blank');
                    browser.show();
        });
      }
    }
   <p (click)="handleClick($event)" [innerHTML]="item.content">></p>

【讨论】:

  • 谢谢,我最终做了类似的事情,但我把它放到了管道中,因为内容是动态的而不是事件。
猜你喜欢
  • 1970-01-01
  • 2017-05-24
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-05
  • 2018-04-01
相关资源
最近更新 更多