我正在创建使用Ionic和ngCordova构建混合应用程序。在应用程序登录工作流程中,我将页面从服务器返回到InAppBrowser插件。我需要在我的Ionic应用程序中从返回的页面中读取一些值。
通常的方法是在' loadstop'上调用executeScript。 event,并在该脚本返回某些内容时设置回调。我可以在以下代码中看到这种设置。但是,无论我尝试什么,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');
});
});
我尝试了多个模拟器,但它们都没有工作。提前感谢您的帮助。
答案 0 :(得分:2)
问题是executeScript
本身就是promise
,所以要使代码正常工作,你必须写下这样的内容:
$rootScope.$on('$cordovaInAppBrowser:loadstop', function (e, event) {
$cordovaInAppBrowser.executeScript(
{
code: "alert(1+1);"
}).then(
function (values) {
alert('add completed');
});
});