离子2 - 第二次呼叫后发生Inappbrowser事件

时间:2017-06-02 10:56:54

标签: ionic2 cordova-plugins inappbrowser

我在离子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就会触发

1 个答案:

答案 0 :(得分:0)

也许您第一次点击“启动”按钮时,设备平台尚未就绪?

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

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