【问题标题】:ionic 2 - Inappbrowser event fire after second callionic 2 - Inappbrowser 事件在第二次调用后触发
【发布时间】:2017-06-02 10:56:53
【问题描述】:

我在 ionic 2 应用程序中使用 inappbrowser 插件,如下所示:

import {InAppBrowser} from 'ionic-native';

并像这样使用它:

launch(url){
      this.browser = new InAppBrowser( url, "_blank", "EnableViewPortScale=yes,closebuttoncaption=Done" );
      this.browser.on("exit")
          .subscribe(
              () => {
                this.close_event=true;
              },
              err => {
                console.log("InAppBrowser Loadstop Event Error: " + err);
              });
  }

在 html 中:

<button  ion-button icon-right color="danger"  (click)="launch('https://www.example.com')">launch
    <ion-icon name="refresh"></ion-icon>

当第一次点击launch button 并关闭浏览器后,exit event 不会触发,但是当第二次点击启动按钮并且关闭浏览器后exit event 会触发

【问题讨论】:

  • 您使用的是 old 版本的 Ionic Native,对吧?因为在上一个版本中,可用的方法发生了一些变化(docs
  • 我尝试使用新方法和旧方法,但 inappbrowser 事件在第二次调用中触发

标签: ionic2 cordova-plugins inappbrowser


【解决方案1】:

也许你第一次点击启动按钮时,设备平台还没有准备好?

尝试将调用放在Plaform.ready() 中的任何InAppBrowser 方法,如下所示:

...
import { Platform } from 'ionic-angular';
import { InAppBrowser } from '@ionic-native/in-app-browser';
...
export class HomePage {
    private iab: InAppBrowser;
    private platform: Platform;
    private browser;
    ...
    var launch = function(url) {
        this.platform.ready().then(
            () => {
                this.browser = this.iab.create( url, "_blank", "EnableViewPortScale=yes,closebuttoncaption=Done" );
                this.browser.on("exit").subscribe(
                    (event) => {
                        this.close_event = true;
                    },
                    (err) => {
                        console.log("InAppBrowser Loadstop Event Error: " + err);
                    }
                );
            }
        );
    };
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2014-12-09
    • 2021-11-08
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    相关资源
    最近更新 更多