InAppBrowser 事件处理问题
InAppBrowser Events handling issue
我正在开发移动应用,使用的是:
- 离子 2.1.4
- 科尔多瓦 6.4.0
- Angular 1.5.3
我有一个外部视图 url 使用 InAppBrowser 插件,我在这个网站上有一个 link 应该重定向到我的应用程序中的特定视图
这个问题是 $location.url()
没有重定向并且根本没有工作,但是当我测试事件时我发现它正常触发。
这是我的完整代码
angular.module('yogipass').controller('iframe',function ($location) {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log('here');
var ref=cordova.InAppBrowser.open('http://192.168.42.218/index.html', '_blank', 'location=no');
ref.addEventListener('loadstart', function(event) {
if (event.url.match("mobile/login")) {
console.log('worked!') // this logged normally
$location.url('/login');
ref.close();
}
});
}
])
您必须 运行 手动摘要循环,因为您正在更改 location
来自 angular 上下文之外的异步事件的路径。
请将您的代码包装在 $timeout
函数中,这将启动摘要循环。显然这将有助于更新位置。
$timeout(function(){
$location.url('/login');
})
我正在开发移动应用,使用的是:
- 离子 2.1.4
- 科尔多瓦 6.4.0
- Angular 1.5.3
我有一个外部视图 url 使用 InAppBrowser 插件,我在这个网站上有一个 link 应该重定向到我的应用程序中的特定视图
这个问题是 $location.url()
没有重定向并且根本没有工作,但是当我测试事件时我发现它正常触发。
这是我的完整代码
angular.module('yogipass').controller('iframe',function ($location) {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log('here');
var ref=cordova.InAppBrowser.open('http://192.168.42.218/index.html', '_blank', 'location=no');
ref.addEventListener('loadstart', function(event) {
if (event.url.match("mobile/login")) {
console.log('worked!') // this logged normally
$location.url('/login');
ref.close();
}
});
}
])
您必须 运行 手动摘要循环,因为您正在更改 location
来自 angular 上下文之外的异步事件的路径。
请将您的代码包装在 $timeout
函数中,这将启动摘要循环。显然这将有助于更新位置。
$timeout(function(){
$location.url('/login');
})