我正在创建使用Ionic和ngCordova构建混合应用程序.在应用程序登录工作流程中,我将页面从服务器返回到InAppBrowser插件.我需要从我的Ionic应用程序中返回的页面中读取一些值.
通常的方法是在’loadstop’事件上调用executeScript,并在该脚本返回某些内容时设置回调.我可以在以下代码中看到这种设置.但是,无论我尝试什么,iOS模拟器,Android模拟器的回调都没有解雇.
这是在InAppBrowser中打开Google网站的页面.
$cordovaInAppBrowser.open('http://google.com', '_blank', options)
.then(function (event) {
//alert('succed')
})
.catch(function (event) {
//alert('errored')
});
以下是loadstop事件处理程序. 1 1脚本被正确注入,因为我确实看到了2的警报.但是根本没有调用回调函数!
$rootScope.$on('$cordovaInAppBrowser:loadstop', function (e, event) {
$cordovaInAppBrowser.executeScript(
{
code: "alert(1+1);"
},
function (values) {
alert('add completed');
});
});
我尝试了多个模拟器,但它们都没有工作.提前感谢您的帮助.
最佳答案 问题是executeScript本身就是一个promise,所以要使你的代码工作,你必须写这样的东西:
$rootScope.$on('$cordovaInAppBrowser:loadstop', function (e, event) {
$cordovaInAppBrowser.executeScript(
{
code: "alert(1+1);"
}).then(
function (values) {
alert('add completed');
});
});