2017-02-19 24 views
2

次のコードは、現在作業しているコードです。 inAppBrowserクローズイベントをどのように聞くことができますか?一部のユーザーがinAppBrowserを閉じると、アプリは何らかの警告メッセージを表示します。inAppBrowserイベントを終了するにはどうすればいいですか?

documentationによると、browser.close()を使用する必要がありますが、これは機能しません。

import { Component } from '@angular/core'; 
import { NavController, NavParams, Platform, LoadingController } from 'ionic-angular'; 
import { InAppBrowser } from 'ionic-native'; 

@Component({ 
    selector: 'page-payment-information', 
    templateUrl: 'payment-information.html' 
}) 
export class PaymentInformationPage { 

    constructor(public navCtrl: NavController, public navParams: NavParams, public platform: Platform, public loadingCtrl: LoadingController) { 
    this.platform = platform; 
    } 

    paymentForm(){ 
     let browser = new InAppBrowser('https://www.stackoverflow.com', '_blank', 'hidden=no,location=no,clearsessioncache=yes,clearcache=yes&enableViewportScale=yes'); 
     browser.close(); 
    } 

} 

答えて

5

コードに間違いがあります。

documentationbrowser.hide()からあなたがしたいことはしません。

現在表示されているInAppBrowserウィンドウを非表示にします。 InAppBrowserが既に非表示の場合、これを呼び出すと は無効になります。

_blank_blankはあなたがcloseイベントをリッスンすることはできませんinAppBrowserで開きますので_systemと交換してください。

これで、ブラウザを購読してそのイベントを聞くことができます。

//Events: loadstart, loadstop, loaderror, exit 
browser.on('exit').subscribe(() => { 
    //Do whatever here 
}, err => 
    console.error(err)); 
}); 
+0

ありがとう、これはまさに私が欲しかったものです。 –

1

私はInAppBrowserのドキュメントで検索し、クローズドイベントのリスナー/ promisseのようなものは何もありません、あなたの代わりに行うことができますPlatformの再開イベントを使用しているので、InAppBrowserは、アプリがバックグラウンドから来て閉じてたときにどのようなアクティブな状態で、このメソッドを起動します。

Ionic 2 API DOCSあなたはそれを使用する方法は何もありませんが、あなたはそれをあなたのコンストラクタでこのようなことをすることができます(おそらくユーザーがこのページを開き、戻ってください)、またはpaymentFormメソッドの内部にあります。

this.platform.resume.subscribe(() => { 
    this.whatINeedToDoWhenUserIsBack(); 
}); 
+0

「オン」は表示されませんでした。 – rashidnk

関連する問題