如何创建将在所有设备上查看本地HTML文件的intent

时间:2014-04-03 15:37:05

标签: android html android-intent

我真的不明白这是多么困难,但我看到它被问到过去4年,并且OP总是报告同样的问题/错误。我尝试了各种解决方案但没有在所有设备上工作。我目前的代码是:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(htmlFile);
intent.setData(uri);
intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
startActivity(intent);

这适用于我的摩托罗拉Photon,我的三星Galaxy 10.1 Tab和我的HTC Droid DNA。但不适用于Note 3或GS4。这两个设备都崩溃了,很可能是基于其他人报告的ActivityNotFoundException(我手头没有设备,报告此设备的用户没有调试器)。

我还在Play商店中看到许多仅用于阅读本地HTML文件的应用程序。所以看起来有必要创建关联并允许浏览器查看本地HTML文件(在我的特定情况下的Downloads目录中)。有没有人能够在所有平台上运行?

1 个答案:

答案 0 :(得分:1)

只需使用:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setDataAndType(Uri.parse(url), "text/html"); 
    startActivity(intent);

由于您不需要定义浏览器包名称,因此它更通用 这将打开一个提示,用户可以选择要打开网址的浏览器 然而,它不会使您免于ActivityNotFoundException,因为您永远不知道用户是否拥有处理设备上安装的html文件的软件。