一.ionic中 控制iframe框架内页面的返回。
在ionic的后退按键操作里 把原有的默认返回【可能是$ionicHistory.goBack();或$rootScope.$ionicGoBack();(这两种返回方式只能返回在ionic路由中定义的地址,响应不到嵌套的iframe里面的返回操作)】替换为【navigator.app.backHistory();或window.history.back();(这两种返回方式相当于可以响应到ionic路由中定义的地址+iframe里的相关返回前进操作)】
具体代码如下:
$ionicPlatform.registerBackButtonAction(function(e) {//ionic中按返回键事件
if ($ionicHistory.backView()) {
navigator.app.backHistory();//原有可能是$ionicHistory.goBack();或$rootScope.$ionicGoBack();
//navigator.app.backHistory();是cordova对navigatorJS对象进行的又一次封装,如果要同时兼容APP+网页 可以使用window.history.back();代替
}
e.preventDefault();//阻止默认返回操作
return false;
}, 101);//101为优先级,默认是100
二.iframe框架中的页面调用ionic代码:
首先在iframe框架中在要触发事件的地方加上:
var data = {
name: '名字',
type: '类型'
}//定义要发送到ionic的数据对象
window.parent.postMessage(data, '*');//创建向ionic代码中发送的事件(详细请直接百度该事件用法)
然后在ionic代码中接收的时候:
window.addEventListener('message', function(event) {//接收iframe中发送过来的数据(详细用法请直接百度)
console.log(event.data);//这个接收到的data就是在iframe中发送过来那个data
}