2017-06-02 59 views
1

我离子2应用程序中使用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就是点火

+0

您使用的离子本土的_old_版本,对不对?因为在最后一个版本中,可用的方法已经改变了一点点([docs](http://ionicframework.com/docs/native/in-app-browser/)) – sebaferreras

+0

我试着用新的方式和旧的方式,但在inappbrowser事件在第二次电话中发射 – Roox

回答

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