iOS 学习 --- OC与JS交互(UIWebView导航栏添加返回、关闭按钮)

需求背景 

从原生页面的一个按钮,点击之后跳转到了一个H5的页面A,A页面中又有一个按钮,点击之后,又加载了一个新的H5页面B,从B点击一个按钮,又加载一个新的H5页面C,如果此时我们点击左上角的返回按钮,会直接返回到我们的原生页面;那怎样做到点页面C左上角的返回按钮返回到页面B,点页面B左上角的返回按钮返回到页面A,就是每次点击返回按钮都返回到当前页面的上一级页面呢??

实现思路

重新定制返回按钮,从C页面判断是否还有上一级H5页面可供返回,如果有上一级页面还是H5,点击左上角的返回则返回到B页面,同时在B页面的左上角加上一个关闭按钮,这个关闭按钮的作用主要是为了关闭所有的H5的页面,直接返回到原生的页面;如果不点击关闭按钮,还是点击返回,则从B页面返回到A页面;再次点击返回,则关闭了H5的页面,回到了原生的页面;

代码实现

  • 判断当前H5是否可以返回
/**
 返回按钮点击方法实现
 */
- (void)backButAction{
    //判断当前页面的上一级页面是否是WebView
    if ([self.webView canGoBack]) {
       //返回上一级h5页面
    }else{
        //返回原生页面
    }
}
  • 返回上一级h5页面
[self.webView goBack];
  • 返回原生页面
/**
 关闭WebView,返回到原生界面
 */
- (void)closeWebView{
    [self.navigationController popViewControllerAnimated:YES];
}

源码:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值