【问题标题】:Ionic 3 InAppBrowser not firing eventIonic 3 InAppBrowser 未触发事件
【发布时间】:2018-09-24 16:30:22
【问题描述】:

我正在制作一个需要调用网站的离子应用程序(不存在)。我只是想把它变成错误。但是“退出”事件不会被触发。

代码

this.browser = this.iab.create("http://www.randomwebsite.com/", "_blank", this.options);
    this.browser.on('exit').subscribe(event => {
        console.log("exit -->", event);
    }, err => {
        console.log("InAppBrowser exit Event Error: " + err);
    });

在应用中打开浏览器只显示404页面,但错误代码不要再往前走,以便我处理。

【问题讨论】:

  • @Matt,我认为它与您从本案中建议的那个问题有关,但是您知道是否有一些解决方法吗?
  • 我不熟悉这个插件,但是从 reading the docs 看来,获取 httpstatus 似乎不是你能做的(我可能错了),并且状态不是 200 won' t 抛出异常。

标签: ionic-framework ionic3 cordova-plugins inappbrowser


【解决方案1】:

在你的组件中声明cordova

declare var cordova;

那么对于错误检查你可以使用下面的函数

const browser = cordova.InAppBrowser.open('http://randomwebsite.org', '_blank', this.options);

browser.addEventListener('loadstart', function(e) {
  // event fires when the InAppBrowser starts to load a URL.
  console.log(e);
});

browser.addEventListener('loaderror', function(e) {
  // event fires when the InAppBrowser encounters an error when loading a URL.
  console.log(e);
  browser.close();
});

您可以查看文档here

【讨论】:

  • 当我在手机上的 Ionic 3 中这样做时,它会给出错误:cordova 未定义。我认为 cordova 对象在 ionic 3 中全局不可用?
  • 您是否在组件中添加了这一行declare var cordova;?将其放在 @component 装饰器之前。
  • 是的,我添加了 declare var cordova;
【解决方案2】:

如果我正确理解了这个问题,那么主要问题就是捕捉错误

this.browser = this.iab.create("http://www.randomwebsite.com/", "_blank", this.options);
    this.browser.on('loadstop').subscribe(event => {
        console.log("exit -->", event);
    }, err => {
        //once the page loading stops and there is an error it comes here and displays you log.
        console.log("InAppBrowser exit Event Error: " + err);
    });

退出inAppBrowser时触发exit事件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多