安卓ios和angularjs相互调用解决首次调用ios传递标题失败的问题

Posted 科比net

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓ios和angularjs相互调用解决首次调用ios传递标题失败的问题相关的知识,希望对你有一定的参考价值。

1.angular 调用客户端方法放在 try catch中 

try {
js_invoke.showShareDialog(angular.toJson(obj));  // 在这里放客户端的方法即可
} catch(e) {
console.log(‘Recommend share‘,obj);
}

2.客户端调用angular的方法,注意方法需全局可以才能正常调用

在首页index.html中声明方法

var goBack = function() { return false };

在具体调用的页面使用

goBack = function() {

   return true;     

};

这里先说下angular在每一页都调用客服端getWebTitle 方法给客户端返回需要显示标题的方法(getWebTitle为安卓ios自己定义的方法)

 

定义方法

function initPageTitle(title) {
var records = {
name: title
};
try { js_invoke.getWebTitle(JSON.stringify(records)); } catch(e) {}
}

$scope.$on($ionicView.enter, function() {   //进入页面及调用这个是ionic的方法

      initPageTitle("首页"); //在进入页面前调用即可

});

 

在安卓端这样调用是没有问题的,在Ios中除首次进入其他时候调用也没有问题

这里需要注意在首次时 由于页面还没加载完方法已经执行所以ios返回的标题直接为空,解决该问题需要ios在页面加载完成后主动调用angualrjs的方法获取到标题

首页增加 var iosPageTitle = function() { };

在首页的controller 中写iosPageTitle = function() { initPageTitle("首页"); };

这样ios加载完成后主动调用angular方法就可以保证标题显示

 





以上是关于安卓ios和angularjs相互调用解决首次调用ios传递标题失败的问题的主要内容,如果未能解决你的问题,请参考以下文章

在AngularJs中父子页面如何相互调用方法和接收值

安卓IOS内嵌H5的相互通信

关于cocos2d-x 和安卓之间的相互调用

angularjs 指令间相互调用

iOS 微信支付点击左上角返回解决方案

能把js打包给安卓和ios调用吗