iOS监听H5页面goBack返回事件问题
来源:互联网 发布:通信概预算软件 编辑:程序博客网 时间:2024/05/26 05:51
本博客迁移来自:http://www.jianshu.com/users/465865c268ed/latest_articles
从native直接push到一个webView页面,隐藏navigationBar,使用H5的头部为导航栏。此时会出现一个问题,就是push出的这个webview没有了原生的navigationBar,那么在点击H5页面上的返回按钮时怎么pop到之前的页面呢?
当然,我们可以使用上一遍博客提到的利用webViewjavascriptBridge的第三方来解决,这就需要H5和nativ相配合,如果h5是另一个团队做的,那么解决这么一个简单的问题确实显得有点小题大做。
所以可以使用一种更简单的方法,利用webView 的delegate方法来控制pop到H5页面还是Native页面。
由于系统尚且要兼容iOS7,加上还涉及到native向webView写cookie的问题,而WKWebView貌似只支持在iOS8以上使用,在cookie处理和缓存处理方面会有比较大的坑,所以项目中依旧使用的是UIWebView。在webView的代理方法中添加如下代码:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ if (navigationType==UIWebViewNavigationTypeBackForward) { self.webView.canGoBack?[self.webView goBack]:[self.navigationController popViewControllerAnimated:YES]; } return YES;}
这样就可以区分返回native还是H5
补充:
以上适用整个页面都是H5的页面
如果只有navigationBar是原生的,此时应该重写pop事件:如下
-(void)navigationBarItemBackImage{ UIImage *image=[UIImage imageNamed:@"navigationBack"]; if ([PSBTools systemVersion]>=7) { image= [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; } self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc]initWithImage:image style:UIBarButtonItemStyleDone target:self action:@selector(goBackAction)];}-(void)goBackAction{ if (self.webView.canGoBack==YES) { [self.webView goBack]; }else{ [self.navigationController popViewControllerAnimated:YES]; }}
0 0
- iOS监听H5页面goBack返回事件问题
- iOS goback页面刷新问题
- ios 嵌套 H5 页面 返回缓存页面
- h5 storage事件监听
- iOS监听系统侧滑返回事件
- iOS监听系统侧滑返回事件
- iOS webView与H5的交互(返回页面的处理)
- iOS webView与H5的交互(返回页面的处理)
- iOS webView与H5的交互(返回页面的处理)
- 浏览器返回事件监听
- H5移动页面的touch事件与点击穿透问题
- H5 中监听页面滚动事件,判断滚动方向的方法
- 监听页面回车事件
- ios h5 用kepup事件验证获取数据问题
- 在IOS中嵌套H5页面发生空白的问题
- H5页面在 ios 端滑动不流畅的问题
- 监听手机返回键事件及返回微信公众号页面
- 手机H5页面滑动事件
- ctrl键看android studio java源码
- ubuntu下eclipse配置opencv
- java日期格式yyyy-MM-dd HH:mm:ss该如何记忆?
- 第16周项目1 验证算法(2)希尔排序
- jar解压缩、再压缩(permission denied出错解决)
- iOS监听H5页面goBack返回事件问题
- 推荐有关微信开发的十个开源项目
- ip 多播地址 和mac多播地址隐射
- 小技巧
- 关于小数负数丢失精度的问题
- emWin学习
- 设计师应该关注的科技发展方向(三)
- UVALive 4839 HDU 3686 Traffic Real Time Query System
- Android 中自定义属性(attr.xml,TypedArray)的使用!