如何在默认浏览器中打开本地 HTML 文件

3
我可以通过以下方式在安卓浏览器中打开本地html文件:

我可以通过以下方式在安卓浏览器中打开本地html文件:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(webPageUri, "text/html");
intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
startActivity(intent);

这个方法是可行的。但我想要在默认浏览器中打开我的本地HTML文件,而不需要指定浏览器:

intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");

有没有方法可以做到这一点?

编辑:

如果我按照您的建议删除setClassName,则会在HtmlViewer中打开它(它不是默认浏览器)。 而且如果我这样做:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(webPageUri);
startActivity(intent);

我收到了一个 ActivityNotFoundException 异常。

你的意思是要删除 intent.setClassName 这一行吗?这样做应该是安全的,因为如果有默认浏览器,系统会启动它,如果没有,则系统会弹出可用浏览器/HTML查看器列表,并让用户选择使用哪一个。 - Ziteng Chen
或许与你的问题无关,但为了更准确,你应该添加一个适当的类别,像这样:"intent.addCategory(Intent.CATEGORY_BROWSABLE);" - Ziteng Chen
只是不要指定它。我不明白这为什么是个问题。 - njzk2
2个回答

1

只需使用:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(webPageUri, "text/html");
startActivity(intent);

这将为用户提供一个已安装浏览器列表以供选择。如果只有一个浏览器,则会启动该浏览器。


如果我删除setClassName,它就不能运行,会在HtmlViewer中打开。如果我这样做: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(webPageUri); startActivity(intent);我会得到ActivityNotFoundException异常。 - user1723095

0

只需删除setClassName()行,您就可以开始了。

如果默认浏览器是手机中唯一的浏览器,则会启动它。如果有多个浏览器,则用户必须选择一个。


如果我删除setClassName,它就无法工作,而是在HtmlViewer中打开。如果我这样做:Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(webPageUri); startActivity(intent);我会得到ActivityNotFoundException。 - user1723095

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接