使用 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 文件的主要内容,如果未能解决你的问题,请参考以下文章

怎么在android手机上打开html文件

Android 浏览器加载本地 HTML

如何使用 android 手机上的本地 Google Maps .html 文件平移到当前位置?

Android 本地加载网页与显示网络图片

如何用浏览器显示手机本地的html文件

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app