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

需求背景 

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

实现思路

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

代码实现

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

源码:源码