迁移到Android 7.0后,我注意到在我的webView中加载以下网址时,我的应用程序崩溃了FileUriExposedException
:
webView.loadUrl("file:///android_asset/myFolder/myFile.html")
我读到here这是因为Android 7.0中引入了一些文件系统权限更改,其中在尝试共享文件时会抛出FileUriExposedException
:// Uri in Intent。
我尝试实现建议的工作,即使用FileProvider
来获取临时访问权限(here),但我不知道如何使这项工作适用于{{1因为我只看到android_asset
的可用路径涉及内部和外部存储路径。
来自MainActivity - >
FileProvider
来自HelpActivity - >
Intent intent = new Intent(view.getContext(), HelpActivity.class);
startActivity(intent);
当需要从webView中的assets文件夹加载文件时,是否有人知道解决此异常的好方法?
webView.loadUrl("file:///android_asset/help/index.html");
答案 0 :(得分:2)
您的网络内容似乎包含触发WebView
通过某种相对路径加载help.html
的内容。 WebView
的默认行为是要求默认Web浏览器加载该页面。这不适用于file:///android_asset/
Uri
值。
因此,请查看HTML,找出尝试重定向到help.html
的内容并进行修复。另外,请考虑在WebViewClient
添加WebView
,您可以通过shouldOverrideUrlLoading()
控制此类页面加载行为。