gpt4 book ai didi

java - Webview 链接不适用于本地存储的 html 文件

转载 作者:行者123 更新时间:2023-12-01 14:37:19 25 4
gpt4 key购买 nike

我目前有一个本地存储的html文件,这只是目前google主页的html。当我将 html 加载到 webview 中时,它工作正常,但所有链接似乎都不起作用。例如,当我单击链接导航到 Google 图片时,它尝试导航到该页面,但显示网页不可用。我使用 toast 来显示正在打开的 url,并且 toast 显示了一个 url(Google 图片示例中的 http://www.google.com/imghp?hl=en&tab=wi),当我在计算机上的浏览器中输入 url 时,它可以工作,但在尝试时它不起作用通过手机上的 WebView 导航到它。有任何想法吗?下面是我的代码。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wb = (WebView)findViewById(R.id.webView1);

wb.getSettings().setJavaScriptEnabled(true);
WebSettings settings = wb.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);

//Listed as optimal settings for HTML5 (may need testing?).
//Ref. http://stackoverflow.com/questions/10097233/optimal-webview-settings-for- html5-support
wb.setFocusable(true);
wb.setFocusableInTouchMode(true);
wb.getSettings().setRenderPriority(RenderPriority.HIGH);
wb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
wb.getSettings().setDatabaseEnabled(true);
wb.getSettings().setAppCacheEnabled(true);
wb.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);


WebViewClient client = new WebViewClient(){
// you tell the webclient you want to catch when a url is about to load
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
Toast.makeText(getApplicationContext(), url, Toast.LENGTH_SHORT).show();
view.loadUrl(url);
return true;
}
// here you execute an action when the URL you want is about to load
@Override
public void onLoadResource(WebView view, String url){

}

@Override
public void onPageFinished(WebView view, String url)
{
// TODO Auto-generated method stub
super.onPageFinished(view, url);
}
};

wb.setWebViewClient(client);
wb.loadUrl("file:///mnt/sdcard/Android/data/output.html");

谢谢!

最佳答案

尝试下面的代码:-

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Log.d(TAG, "No SDCARD");
} else {
web_view.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/Android/data/output.html");
}

web_view.loadUrl("file://"+Environment.getExternalStorageDirectory()+"//Android/data/output.html");

并且您必须检查 android list 上的以下条目

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

关于java - Webview 链接不适用于本地存储的 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16366896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com