使用 Android 浏览器打开本地 html 文件
Posted
技术标签:
【中文标题】使用 Android 浏览器打开本地 html 文件【英文标题】:opening local html file with Android Browser 【发布时间】:2011-11-09 18:18:36 【问题描述】:我正在尝试使用以下代码使用默认浏览器打开本地 html 文件:
Uri uri = Uri.fromFile(file);
Intent browserIntent = new Intent(Intent.ACTION_VIEW).setData(uri);
startActivity(browserIntent);
但我得到以下异常:
android.content.ActivityNotFoundException: No Activity found to handle Intent act=android.intent.action.VIEW dat=file:///sdcard/SolveDroid/solution.html
我很困惑 - 我应该创建一个活动来处理网络浏览器吗?它不应该只是调用它的活动吗?
请指教:)
更新:
如果我像这样传递 URL,则相同的代码可以工作:
Uri uri = Uri.parse("http://www.metalist.co.il");
【问题讨论】:
您要开始的活动是什么?你的代码说 startActivity() 但哪一个? 什么意思?我应该调用特定的活动吗?默认浏览器不是已经是活动了吗? 【参考方案1】: Uri uri = Uri.fromFile(file);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
browserIntent.setData(uri);
startActivity(browserIntent);
【讨论】:
file
必须采用以下格式:file://sdcard/somedir/somefile
在 Android 3.2 和 4.0.4 上都不起作用,请参阅***.com/q/10104244 任何解决方法?【参考方案2】:
我找到了这个问题的答案......只需要添加
browserIntent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
我通过Uri.fromfile(file)
将它与“file://”uri 一起使用,它可以工作(Android v.2.2.1)
【讨论】:
【参考方案3】:试试这个
Intent in = new Intent(Intent.ACTION_VIEW);
File f=new File("/sdcard/html.html");
in.setDataAndType(Uri.fromFile(f), "text/html");
startActivity(in);
【讨论】:
短短几年后,/sdcard 文件夹消失了(以换取难以理解的“外部私人文件夹”巢穴)。我在哪里写临时文件以便网络浏览器可以读取它?以上是关于使用 Android 浏览器打开本地 html 文件的主要内容,如果未能解决你的问题,请参考以下文章