iOS 上未收听 ngCordova Inappbrowser 事件
ngCordova Inappbrowser events not being listened on iOS
我已成功完成 Ionic Android 申请。现在,我正在将其迁移到 IOS。但是,inAppbrowser 事件根本没有 called/listened。
我使用 ngCordova 访问在 Android 中运行良好的 inappbrowser。
在 iOS 中,inappbrowser 打开,但之后没有事件侦听器被触发。在模拟器和设备上都试过了。
我在模拟器上看到的唯一警告是
testv2[808:134364] THREAD WARNING: ['InAppBrowser'] took '45.421875' ms. Plugin should use a background thread.
这是我的应用程序版本:
$cordova -v
v6.5.0
$ionic -v
v2.2.1
iOS version - 10.12.2 (16C67)
请帮忙。
**注意:我是 IOS 的新手。
首先我补充说,
<access-origin="*"/>
<allow-navigation href="*" />
然后,在我的 html、
<ion-view view-title="Playlists">
<ion-content>
<button ng-click="openBrowser()">Click me</button>
</ion-content>
</ion-view>
在播放列表控制器中,
.controller('PlaylistsCtrl', function($scope,$cordovaInAppBrowser,$rootScope) {
$scope.openBrowser = function() {
// body...
var options = {
location: 'yes',
clearcache: 'yes',
toolbar: 'yes'
};
document.addEventListener("deviceready", function () {
$cordovaInAppBrowser.open('http://ngcordova.com', '_system', options)
.then(function(event) {
// success
})
.catch(function(event) {
// error
});
$cordovaInAppBrowser.close();
}, false);
$rootScope.$on('$cordovaInAppBrowser:loadstart', function(e, event){
alert(loadstart);
console.log("loadstart");
});
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){
alert(loadstop);
console.log(loadstop);
// insert Javascript via code / file
});
$rootScope.$on('$cordovaInAppBrowser:loaderror', function(e, event){
alert("loaderror");
console.log("logerror");
});
$rootScope.$on('$cordovaInAppBrowser:exit', function(e, event){
});
通过简单的window.open方法解决了
var ref = window.open(url, '_blank','clearcache=yes,location=no,toolbar=yes');
ref.addEventListener('loadstart', handleEvents, false);
ref.addEventListener('loadstop', handleEvents, false);
var handleEvents = function(event) {}
我已成功完成 Ionic Android 申请。现在,我正在将其迁移到 IOS。但是,inAppbrowser 事件根本没有 called/listened。
我使用 ngCordova 访问在 Android 中运行良好的 inappbrowser。 在 iOS 中,inappbrowser 打开,但之后没有事件侦听器被触发。在模拟器和设备上都试过了。 我在模拟器上看到的唯一警告是
testv2[808:134364] THREAD WARNING: ['InAppBrowser'] took '45.421875' ms. Plugin should use a background thread.
这是我的应用程序版本:
$cordova -v
v6.5.0
$ionic -v
v2.2.1
iOS version - 10.12.2 (16C67)
请帮忙。
**注意:我是 IOS 的新手。
首先我补充说,
<access-origin="*"/>
<allow-navigation href="*" />
然后,在我的 html、
<ion-view view-title="Playlists">
<ion-content>
<button ng-click="openBrowser()">Click me</button>
</ion-content>
</ion-view>
在播放列表控制器中,
.controller('PlaylistsCtrl', function($scope,$cordovaInAppBrowser,$rootScope) {
$scope.openBrowser = function() {
// body...
var options = {
location: 'yes',
clearcache: 'yes',
toolbar: 'yes'
};
document.addEventListener("deviceready", function () {
$cordovaInAppBrowser.open('http://ngcordova.com', '_system', options)
.then(function(event) {
// success
})
.catch(function(event) {
// error
});
$cordovaInAppBrowser.close();
}, false);
$rootScope.$on('$cordovaInAppBrowser:loadstart', function(e, event){
alert(loadstart);
console.log("loadstart");
});
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){
alert(loadstop);
console.log(loadstop);
// insert Javascript via code / file
});
$rootScope.$on('$cordovaInAppBrowser:loaderror', function(e, event){
alert("loaderror");
console.log("logerror");
});
$rootScope.$on('$cordovaInAppBrowser:exit', function(e, event){
});
通过简单的window.open方法解决了
var ref = window.open(url, '_blank','clearcache=yes,location=no,toolbar=yes');
ref.addEventListener('loadstart', handleEvents, false);
ref.addEventListener('loadstop', handleEvents, false);
var handleEvents = function(event) {}