要在HTML中加载资源,我使用的是网址file:///android_asset/my_image.png
。
它在我本地加载HTML时有效,例如,使用WebView.loadData()
方法。
但是,我无法从远程网站加载本地资产,例如,当我使用WebView.loadUrl("http://example.com/my_page.html")
加载页面时。它显示页面,但未加载图像。
如何解决此问题?
更新
塔克什瓦尔提到,由于安全原因,这是不可能的。我知道当您在浏览器中打开网页时,您作为用户无法控制网页访问的内容。当您可以读取用户的敏感数据时,访问本地文件系统也有所不同。在这里,我只想访问应用程序资产。解决方法可能是,下载页面并使用WebView
方法将其加载到loadData()
。但可能会有一些安全开关允许WebView
访问本地资产。
UPDATE2: 我需要支持Android 2.3 +。
答案 0 :(得分:1)
您无法从外部网页链接到本地资源。这是出于安全原因。
请参阅Pekka对类似问题的回答:How to show local picture in web page?
答案 1 :(得分:1)
扩展WebViewClient并覆盖shouldInterceptRequest以在本地加载文件。网址都会显示为远程,但您可以根据需要有选择地加载。
http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldInterceptRequest(android.webkit.WebView,java.lang.String)