作者:説悢沵xb | 来源:互联网 | 2023-08-17 21:58
我曾尝试使用WebView
从Google代码和其他资源中尝试示例,演示,但是当我尝试在自己的代码中执行代码时,它不适用于我。
我想加载myfile.html
,我把资产文件夹,并使用:
private WebView myWebView; myWebView.loadUrl("file:///android_assets/myfile.html");
在模拟器上显示错误
file:///android_assets/myfile.html
的网页无法加载为:未find请求的文件。 /android_assets/myfile.html
当我把这个文件res/raw/
文件夹,并使用:
myWebView.loadUrl("file:///android_res/raw/myfile.html");
那么只有模拟器的android 2.2 API级别8可能会加载该文件,其他旧版本显示相同的错误。 我错过了什么?
有什么方法可以在适用于所有API版本的应用程序包中加载现有的.html文件?
好吧,那是我非常愚蠢的错误。 我在这里发布答案,以防万一有人有同样的问题。
资产文件夹中存储文件的正确path是file:///android_asset/*
(资产文件夹没有“s”,我一直认为它必须有“s”)。
而且, mWebView.loadUrl("file:///android_asset/myfile.html");
在所有API级别下工作。
我仍然不知道为什么mWebView.loadUrl("file:///android_res/raw/myfile.html");
仅适用于API级别8,但现在没关系。
将您的.html文件粘贴到项目文件夹的assets文件夹中。 并使用以下代码在布局文件夹中创build一个xml文件:my.xml:
在活动中添加fol代码
setContentView(R.layout.my); WebView mWebView = null; mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavascriptEnabled(true); mWebView.loadUrl("file:///android_asset/new.html"); //new.html is html file name.
将.html文件复制并粘贴到项目的assets文件夹中,并在onCreate()的Activity上添加下面的代码。
WebView view = new WebView(this); view.getSettings().setJavascriptEnabled(true); view.loadUrl("file:///android_asset/**YOUR FILE NAME**.html"); view.setBackgroundColor(Color.TRANSPARENT); setContentView(view);
如果你的结构应该是这样的:
/assets/html/index.html
/assets/scripts/index.js
/assets/css/index.css
然后,只要( Android WebView:处理方向更改 )
if(WebViewStateHolder.INSTANCE.getBundle() == null) { //this works only on single instance of webview, use a map with TAG if you need more webView.loadUrl("file:///android_asset/html/index.html"); } else { webView.restoreState(WebViewStateHolder.INSTANCE.getBundle()); }
确保你添加
WebSettings webSettings = webView.getSettings(); webSettings.setJavascriptEnabled(true); webSettings.setJavascriptCanOpenWindowsAutomatically(true); if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { webSettings.setAllowFileAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true); }
然后只需使用url
您可以手动读取html文件,然后使用WebView的loadData
或loadDataWithBaseUrl
方法来显示它。
以上就是android开发分享用Android WebView加载现有的.html文件相关内容,想了解更多android开发(异常处理)及android游戏开发关注(编程笔记)。