在不使用网络服务器的情况下在网络视图上加载 html 页面
Load html page on webview without using a web server
有没有办法在不使用网络服务器的情况下在网络视图上加载 html 页面?
在我的 android 应用程序中,我有一个网络服务器,因为用户可以保存他想要的网页,以后可以离线访问它们。
我尝试了 assets 文件夹,但我无法在运行时修改它。我只能读取我放在那里的文件。
在线或离线加载我使用webview的方法:
浏览器是webview。
browser.setWebViewClient(new client());
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setDomStorageEnabled(true);
browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
browser.getSettings().setUseWideViewPort(true);
browser.loadUrl(url);
url可以是:
或
http://localhost:8080"; //应用内的网络服务器
或来自资产文件夹
files:///android_asset/file.html
不过我怎么说,用户可以保存很多页,想看的时候看。
有没有办法在webview上加载保存在内存中的页面?
URL =this.getApplicationContext().getFilesDir()+"/www/file.html";
browser.loadUrl(URL);
例如:webview.loadString(); ?
对于名为 f
的 File
对象指向您想要的文件,browser.loadUrl(Uri.fromFile(f).toString())
之类的东西应该可以工作。 Uri.fromFile()
会给你一个 Uri
和正确的方案; toString()
为您提供要交给 WebView
的字符串表示形式。我使用这个(或变体)来读取外部存储上的文件。据我所知,它也应该适用于内部存储上的文件。
有没有办法在不使用网络服务器的情况下在网络视图上加载 html 页面?
在我的 android 应用程序中,我有一个网络服务器,因为用户可以保存他想要的网页,以后可以离线访问它们。
我尝试了 assets 文件夹,但我无法在运行时修改它。我只能读取我放在那里的文件。
在线或离线加载我使用webview的方法: 浏览器是webview。
browser.setWebViewClient(new client());
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setDomStorageEnabled(true);
browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
browser.getSettings().setUseWideViewPort(true);
browser.loadUrl(url);
url可以是:
或
http://localhost:8080"; //应用内的网络服务器
或来自资产文件夹
files:///android_asset/file.html
不过我怎么说,用户可以保存很多页,想看的时候看。
有没有办法在webview上加载保存在内存中的页面?
URL =this.getApplicationContext().getFilesDir()+"/www/file.html";
browser.loadUrl(URL);
例如:webview.loadString(); ?
对于名为 f
的 File
对象指向您想要的文件,browser.loadUrl(Uri.fromFile(f).toString())
之类的东西应该可以工作。 Uri.fromFile()
会给你一个 Uri
和正确的方案; toString()
为您提供要交给 WebView
的字符串表示形式。我使用这个(或变体)来读取外部存储上的文件。据我所知,它也应该适用于内部存储上的文件。