Ионный родной InAppBrowser: как добавить прослушиватель событий
Я использую InAppBrowser в своем Ionic проекте, проблема заключается в добавлении нового слушателя событий, так как в документации ionic-native вообще не работает, я ссылался на оригинальный cordova-plugin-inappbrowser и ни одно из этих событий не работает, я знаю это Это проблема со стороны обертывания Ionic и их плохой документации, они меняют весь способ вызова плагина, и вам нужно попробовать, пока вы не получите правильный путь.
Поэтому я спрашиваю, как добавить слушателей событий в InAppBrowser
плагин?
То, что я пробовал до сих пор, это:
var _options = 'location=no,clearsessioncache=yes,hardwareback=no';
function openLink(url, target, options) {
if (angular.isUndefined(options)) {
options = _options;
}
if (!$window.cordova) {
$window.open(url, '_blank', options);
} else {
_attachEvents(new $cordovaInAppBrowser(url, target, options));
}
}
function _attachEvents(browser) {
// FIXME this is not working seems, need to find documentation about this
browser.on('loadstart').subscribe(function (e, event) {
console.debug(e, event);
if (event.url.match("mobile/close")) {
browser.close();
}
$rootScope.$broadcast('$ionicParentView.enter');
});
browser.on('loaderror').subscribe(function (e, event) {
console.debug(e, event);
browser.close();
$rootScope.$broadcast('$ionicParentView.enter');
});
}
И попробовал ngCordova способом:
$rootScope.$on('$cordovaInAppBrowser:loadstart', function (e, event) {
if (event.url.match("mobile/close")) {
$cordovaInAppBrowser.close();
}
$rootScope.$broadcast('$ionicParentView.enter');
});
$rootScope.$on('$cordovaInAppBrowser:loaderror', function (e, event) {
$cordovaInAppBrowser.close();
$rootScope.$broadcast('$ionicParentView.enter');
});
И они не работают, кстати, он работал с ngCordova, но, поскольку я перешел на ionic-native, он вообще перестал работать.
Я использую Ionic 1.3.2 с ionic-native 2.2.16 (так как 2.2.17 и 2.3.0 - это неработающие сборки)