在Fragment中重寫返回鍵以及WebView載入重定向頁面返回問題
首先我是實現一個PagerView的頁面滑動效果,並在裡面添加了兩個Fragment當作子頁面。其中一個Fragment中使用WebView顯示網頁。
於是遇到了這樣的問題:
1、使用網頁的時候,從一個頁面跳到另一個頁面,當想返回上一個頁面時,點選返回按鈕,應用直接就退出了。
2、解決問題1之後,WebView載入了一個重定向的頁面,點選返回按鈕頁面無法正常返回,多次點選才能返回。
問題1:
其實就是重寫onKeyDown 方法,但是Fragment類沒有onKeyDown方法,怎麼辦呢,就在MainActivity中重寫。
如下:
可以看到,在MainActivity的onKeyDown方法中,當頁面處在有WebView的頁面時(currentIndext==1),我呼叫了WebFragment的clickBack方法並傳遞keyCode和event兩個引數。@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(currentIndex==1){ WebFragment.clickBack(keyCode, event); return true; } return super.onKeyDown(keyCode, event); }
是的,我在WebFragment中添加了一個靜態方法clickBack,接收MainActivity傳來的keyCode和event引數,這樣就可以自定義onKeyDown方法了。如下:
這樣當用戶點選返回按鈕時,WebView的頁面就會goBack了。public static boolean clickBack(int keycode,KeyEvent event){ if(keycode==KeyEvent.KEYCODE_BACK&&webView.canGoBack()){ webView.goBack(); } return true; }
問題2:
只要重寫WebViewClient裡面的shouldOverrideUrlLoading方法即可,如下:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
return false;
}
是的,就這麼簡單,只要返回false就行了。我也不知道為什麼,這是從別人那裡看來的。
注:以上的方法是我進行了大量搜尋之後查到的最簡單的解決辦法,可能不是最好的解決辦法,網路上也還有其他許多針對這兩個問題的解決辦法。
相關推薦
在Fragment中重寫返回鍵以及WebView載入重定向頁面返回問題
首先我是實現一個PagerView的頁面滑動效果,並在裡面添加了兩個Fragment當作子頁面。其中一個Fragment中使用WebView顯示網頁。 於是遇到了這樣的問題: 1、使用網頁的時候,從一個頁面跳到另一個頁面,當想返回上一個頁面時,點選返回按鈕,應用直接就退出
在Fragment中重寫返回鍵以讓WebView使用返回功能
首先我是實現一個PagerView的頁面滑動效果,並在裡面添加了兩個Fragment當作子頁面。其中一個Fragment中使用WebView顯示網頁。 於是遇到了這樣的問題: 1、使用網頁的時候,從一個頁面跳到另一個頁面,當想返回上一個頁面時,點選返回按鈕,應用直接就退出了。 2、解決問題1之後,Web
mui中同一個頁面按物理返回鍵只關閉彈窗,不返回上一個頁面
若一個頁面中存在彈窗,在彈窗開啟的狀態下,點選物理返回鍵只要求關閉當前彈窗,而不是返回上一頁面,再次點選物理鍵時才會返回上一頁面,有以下解決方法。 step1:進入頁面時先禁用物理返回鍵,此時還能監聽到返回鍵,只是不執行返回 mui.init({ beforeback:func
android studio中修改快捷鍵以及實用的開發快捷鍵,方便技巧
直接上圖,看了就明白: 1.開啟設定---->keymap 2.選擇哪個型別的快捷鍵,本人是eclipse過來的,還是沿用eclipse; 3.這裡是搜尋功能的地方,比如我要看程式碼格式化,就在這輸入“reformat code”,就會跳到具體的設定; 4.你只知道
Java中static關鍵字解析以及類載入順序例題
一.static關鍵字的用途 在《Java程式設計思想》P86頁有這樣一段話: “static方法就是沒有this的方法。在static方法內部不能呼叫非靜態方法,反過來是可以的。而且可以在沒有建立任何物件的前提下,僅僅通過類本身來呼叫static方法
C#Process.Start獲取main函式返回值,以及控制檯輸出重定向到文字框
1、Process.Start()返回啟動程序main函式的返回值 private void button1_Click(object sender, EventArgs e) { Process da = new Process
Nginx安裝,默認虛擬主機以及認證和重定向
NginxNginx安裝 1.首先下載安裝包 [root@weixing01 src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz --2018-03-14 00:46:57-- http://nginx.org/download/nginx-1.
Android WebView 因重定向無法正常goBack()解決方案
首先說下問題,初始頁面為A,點選某個連結跳轉到B(http://xxx.com.cn/),B頁面重定向到C頁面(http://xxx.com.cn/website/index.html) 當呼叫webview.goBack()時,頁面回退到B,然後接著會重定向回C頁面.
ubuntu下python跑任務輸出到檔案中遇到的一些問題(輸出重定向)
之前主要是參考https://www.cnblogs.com/chason95/articles/9760291.html 一般使用 python test.py > ./log.txt 或 python test.py | tee ./log.txt 然後就會快取很多輸出後才能在螢幕或log中查到
[Servlet]HttpServletResponse的二進位制輸出(獲取應用程式中的資源再輸出)、重定向、錯誤傳送
1. 使用getOutputStream輸出二進位制位元組流: 1) 有時相對瀏覽器輸出的直接是一個檔案資源而不是HTML等字串文件,此時就需要使用HttpServletResponse的getOutputStream進行位元組流輸出; 2) 輸出過程:
ANDROID HTML重定向之後返回原生view處理
一直都在做HTML與原生混合式開發,前面遇到一個問題,我們的合作企業,合入我們的APP之後,出現頁面跳轉頁面死迴圈的問題。 1.下面是我們APP裝載HTML後頁面的邏輯||原理 這裡把 合作公司的HTML簡稱[yiju_html], 我們裝載
Django中重定向頁面時候的小技巧
一個 short href rtc 轉換 edi 修改 ret res urls.py from django.urls import path from . import views app_name=‘front‘ urlpatterns = [ path
android webView 解決重定向
最近在開發WebView 過程中碰到了 資源重定向問題;較為頭疼;百度啊;谷歌啊 ; 奈何 ///試了N邊沒有找到合適的; 終於皇天不負有心人 經過一番的艱苦奮戰;我的問題是解決了; 1:這個對於重
關於js中"window.location.href"、"location.href"重定向
關於js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法 "window.location.href"、"location.href"是本頁面跳轉
html中meta標籤 refresh 屬性值 -- 重新整理與跳轉(重定向)頁面
示例: 5秒之後重新整理本頁面: <metahttp-equiv="refresh" content="5" /> 5秒之後轉到夢之都首頁: <metahttp-equiv="refresh" content="5;url=http://www.dream
UIWebView 載入重定向url、新增請求頭資訊
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationTy
Fiddler(3)--重定向(返回指定資料)
1、使用AutoResponder標籤 2、點選Add Rule按鈕,使用匹配規則 (1)勾選Enable rules:啟用規則 (2)勾選unmatched requestspassthrough:不匹配規則的就按照之前的請求地址傳送過去 (3)選擇規則,在r
Springmvc返回值,ajax,重定向
. TestControler: package com.mth.springmvc; import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFo
javaEE------------------有關servlet的一些細節(輸出流以及轉發、重定向和請求包含)
1.servlet中的兩個輸出流:位元組流(response.getOutputStream()) 和字元流(response.getWriter()) 1)用位元組流輸出時,英文可以out.print("Hello1");中文要採用out.write("中文".getBy
SpringMVC第三篇【收集引數、字串轉日期、結果重定向、返回JSON】
業務方法收集引數 我們在Struts2中收集web端帶過來的引數是在控制器中定義成員變數,該成員變數的名字與web端帶過來的名稱是要一致的…並且,給出該成員變數的set方法,那麼Struts2的攔截器就會幫我們自動把web端帶過來的引數賦值給我們的成員變數….