Я использую Cordova Inappbrowser для моего ионного приложения.Мне нужно определить, когда URL перенаправляет на http://xx.success.html
or
http://xx.failure.html
мой код:
public openWithCordovaBrowser(url: string) {
//where are events triggered (_self,_blank,_window)?
let target = "_self";
let inAppBrowserObject = this.inAppBrowser.create(url, target, this.inAppBrowserOptions);
//When the page is success, close inappbrowser
if (inAppBrowserObject.on('loadstart').subscribe) {
inAppBrowserObject.on('loadstart').subscribe((e: InAppBrowserEvent) => {
if (e && e.url) {
if (e.url.includes('success.html')) {
inAppBrowserObject.close(); //not reached?
}
}
});
}
//When the InAppBrowser is closed, check and use the last viewed URL
if (inAppBrowserObject.on('exit').subscribe) {
inAppBrowserObject.on('exit').subscribe((e: InAppBrowserEvent) => {
if (url) {
console.log('exit: ' + e); //this is reached
}
});
}
}
не работает и inAppBrowserObject.close()
никогда не вызывается.
ошибка в консоли Chrome Dev:
Error in Success callbackId: InAppBrowser780208391 : TypeError: Object(...) is not a function
cordova.js:310 TypeError: Object(...) is not a function
at InAppBrowserObject.close (vendor.js:81063)
at SafeSubscriber._next (main.js:411)
at SafeSubscriber.__tryOrUnsub (vendor.js:20899)
at SafeSubscriber.next (vendor.js:20846)
at Subscriber._next (vendor.js:20786)
at Subscriber.next (vendor.js:20750)
at Channel.fire (cordova.js:843)
at InAppBrowser._eventHandler (inappbrowser.js:48)
at cb (inappbrowser.js:108)
at Object.callbackFromNative (cordova.js:291)
Но закрытие браузера вызывает console.log('exit: ' + e);
мой объект inAppBrowser выглядит так: