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];
}

源碼:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章