1. 程式人生 > >安卓ios和angularjs相互調用解決首次調用ios傳遞標題失敗的問題

安卓ios和angularjs相互調用解決首次調用ios傳遞標題失敗的問題

catch ini angualrjs 全局 index als ole ons 客戶

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傳遞標題失敗的問題