以下是我目前正在使用的代码。我想了解如何收听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();
}
}
答案 0 :(得分:9)
您的代码中存在一些错误。
从documentation browser.hide()
做不出你想做的事。
隐藏当前显示的InAppBrowser窗口。打电话给这个 如果InAppBrowser已被隐藏,则无效。
_blank
将其替换为_system
,因为_blank
会在inAppBrowser中打开。你将无法听到近距离的事件。
现在,您可以订阅浏览器并监听它的事件,例如
//Events: loadstart, loadstop, loaderror, exit
browser.on('exit').subscribe(() => {
console.log('browser closed');
}, err => {
console.error(err);
});
答案 1 :(得分:1)
我在InAppBrowser文档中搜索并且没有像闭包事件的监听器/ promisse,你可以做的是使用Platform的resume事件,所以当InAppBrowser关闭并且应用程序从后台变为活动状态时它会触发这种方法。
在Ionic 2 API DOCS中没有任何关于如何使用它的说法,但既然你可以订阅它,那么你可以在你的构造函数中做这样的事情(因为用户可以离开应用程序可能不会很好在此页面中并返回时)或在paymentForm
方法内。
this.platform.resume.subscribe(() => {
this.whatINeedToDoWhenUserIsBack();
});
答案 2 :(得分:1)
只是为了澄清Navneil Naicker的正确答案。如果没有jquery,则可以使用addEventListener
而不是on
。可以对window.open
的返回值进行此操作。
var popupWindow = window.open(url, "_blank");
popupWindow.addEventListener('exit', function (event) {
alert('user closed in app browser!');
});
答案 3 :(得分:1)
我知道这是3年前的问题,但是问题是有问题的,所以这里是解决方法
第一次导入InAppBrowser
import {InAppBrowser} from '@ionic-native/in-app-browser/ngx';
第二次添加到Constructor()
constructor(private iab: InAppBrowser ) {}
3rd现在您可以使用on('xxx'),其中xxx是您想要的事件 活动清单: 'loadstart'| 'loadstop'| 'loaderror'| '退出'| 'beforeload'| '消息'| 'customscheme'
在您的情况下,您想在关闭inAppBrowser时进行收听,请查看以下示例:
anyFunName(url){
let openBrowser = this.iab.create(url, '_blank');
openBrowser.on('exit').subscribe(event => {
console.log("inAppBrowser is closed now");
// your action here when close inAppBrowser
});
}