2015-06-20 57 views
0

我想通过浏览器打开下载的html文件,将它们传递给一个意图,并从我的活动开始。从意图的浏览器中打开html文件

我知道有十几个关于这个问题的线程(例如this)。

但是,这些方法似乎都不起作用。

到目前为止,我有:

File file = //myHTMLFile; 
Intent browserIntent = new Intent(Intent.ACTION_VIEW); 
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE); 
browserIntent.setData(Uri.fromFile(file)); 

我试着设置Mimeypestext/html的,添加/删除类别,甚至使用multipe MIME类型和额外的MIME类型标志,但没有这些想法就职于我。

目前一个“默认”浏览器将打开,无法显示该文件。我想在Chrome,Firefox或其他常用浏览器中打开文件。

也怪异:我从Uri.fromFile()收到的Uri字符串不可由Chrome打开。

该路径看起来像file:///data/data/myapp/website.html

该文件本身位于/storage/emulated/0/myapp/website.html。以file:///为前缀传递此值,Chrome将显示该网站。

Uri.fromFile是否正确?

回答

2

该路径看起来像file:///data/data/myapp/website.html。

假设myapp真的是你的应用程序ID,这是指向内部存储,并没有其他的应用程序可以访问(例外:植根设备)。

Uri.fromFile是否正确?

Uri.fromFile()工作正常,但您传递的file未正确创建。

除此之外,请记住,浏览器不必支持file://计划,所以有些人可能不会。

+0

感谢您的快速回答!我现在正在外部存储器中创建文件。有没有其他方法可以通过意向直接在Chrome中打开文件?当直接在Chrome中复制文件:/// - path时,它将加载网站 – Frame91

+0

@ Frame91:“我现在在外部存储中创建文件” - 这不是“文件”指向的内容,基于你有什么问题。 “有没有其他方法可以通过意向直接在Chrome中打开文件?” - 我不知道Chrome支持哪些方案,并且这些方案可能会在未来版本的Chrome中发生变化。 'http'和'https'看起来是很有价值的候选人,如果Chrome支持'content',用于'FileProvider'或你自己的'ContentProvider',那将会很不错。 – CommonsWare

+0

我现在解决了外部存储问题,这就是我的意思。我有一个小错误,现在URI已正确创建。感谢您指出错误! – Frame91

相关问题