我有一個Android網頁瀏覽器,使用location.replace(url)
重定向到另一個頁面。
可以說我有頁面「A」重定向到頁面「B」(使用location.replace)。當從頁面「B」按下「返回」按鈕時,頁面返回到頁面「A」,該頁面再次將其重定向到頁面「B」。 當我調試歷史api(history.length)時,我可以清楚地看到在頁面「B」上的長度增加了「1」(僅適用於Android 4.X webview。在iOS/web瀏覽器/ Android 2.X它仍然是一樣的),這是一個錯誤! (location.replace不應該改變history.lenght!)Android的網絡視圖「location.replace」不起作用
2
A
回答
4
我的Yaniv在這個項目上,我們找到問題的原因,它是在我們嘗試添加mailto:
根據this answer處理的鏈接時引入的。
答案使用下面的擴展類WebViewClient的建議:
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(MailTo.isMailTo(url)){
MailTo mt = MailTo.parse(url);
// build intent and start new activity
return true;
}
else {
view.loadUrl(url);
return true;
}
}
}
的問題是明確告訴WebViewClient
加載URL和返回true(意思是「我們處理這個」)的添加頁面到歷史。 WebViews能夠自行處理常規URL,因此返回false並且不觸及視圖實例將使WebView加載頁面並按照它應該處理它。
所以:
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(MailTo.isMailTo(url)){
MailTo mt = MailTo.parse(url);
// build intent and start new activity
return true;
}
else {
return false;
}
}
}
0
嘗試這種方式..
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView mainWebView = (WebView) findViewById(R.id.webView1);
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
mainWebView.loadUrl("file:///android_asset/www/A.html");
}
1
function locationReplace(url){
if(history.replaceState){
history.replaceState(null, document.title, url);
history.go(0);
}else{
location.replace(url);
}
}
相關問題
- 1. 某些網站選項在網絡視圖中不起作用
- 2. 製作好的網絡圖像galerry爲Android網絡視圖
- 3. Android:地圖視圖不起作用
- 4. Android的web視圖setinitialscale不起作用
- 5. Android網絡視圖不加載URL
- 6. 網絡視圖android中的視頻流?
- 7. 網頁視圖shouldoverrideurlloading不起作用
- 8. 網絡工作者不起作用
- 9. WPF圖像後備不起作用失敗的網絡圖像
- 10. 快速blox視頻調用不起作用在網絡上
- 11. 的JavaScript location.replace不工作
- 12. 網絡視圖不刷新
- 13. 網絡運行不起作用
- 14. 消費網絡api:不起作用
- 15. OpenCV - 網絡攝像頭不起作用
- 16. html5緩存 - >「網絡:*」不起作用
- 17. Asp網絡mvc - 腳本不起作用
- 18. 網絡腳本不起作用。 CentOS 2.6
- 19. DNX(rc1)網絡命令不起作用
- 20. Processing.js FloatList在網絡上不起作用
- 21. 使用ifconfig在Android中打開網絡,但它不起作用
- 22. Android網絡視圖不會加載特定的網址
- 23. Laravel-視圖不起作用
- 24. 在網絡視圖中打開文件上傳菜單不起作用
- 25. 網絡視圖不適用於iOS5
- 26. 網絡視圖 - 網頁不顯示
- 27. 網絡視圖不顯示網址
- 28. 網絡視圖不加載網絡圖像
- 29. 從網絡獲取圖像到UIImageView不起作用
- 30. 網絡圖像視圖的center_crop不工作