`

打开自己程序下的html文件资源并显示的方法

阅读更多

在工作中碰到一个情况,要调用系统的浏览器去加载一个网页,而这个网页是放在程序路径下的

首先,如何去调用系统的浏览器

Uri uri = Uri.parse("file:///android_asset/help.html"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity"); 
startActivity(intent);

关键在后面的setClassName上,其实相当于直接去显示的启动了BrowserActivity,但是这样打开以后,会被告知help.html找不到,这就是问题所在了

 

在之前使用WebView的demo时,可以发现只需要通过

webView.loadUrl("file:///android_asset/help.html");

就可以打开这个页面 所以访问asset下的资源路径应该是没错

 

之后,类似的,需要uri 还尝试了把文件放到raw文件夹下,然后通过

android.resource://package_name/R.raw.help
android.resource://package_name/raw/help

但是都失败了

 

最后在http://groups.google.com/group/android-developers/browse_thread/thread/1b2d20747a13224找到了原因

Mark Murphy解释的非常清楚,大概的意思是;

1 我们通过setClassName启动了一个Activity,但是这个Activity的包并不是我们这个程序的,也就是启动了一个外部程序

2 我们通过外部的程序,想要去访问我们自己包下的资源

显然 外部程序无法找到这个资源 因为他只能访问属于他的内容

 

同样的 Mark Murphy还提供了解决这些问题的思路

1 使用WebView

2 使用TextView,放到ScrollView中 模拟一个HTML

3 将网页放到服务器上 然后再通过网络去访问

4 自身程序提供ContentProvider 这样外部浏览器可以访问

5 将文件拷贝到sd卡(外部存储卡)上,然后再去访问

 

第二个方法应该说是最差的 但是如果网页很简单 那么也可以使用

第三个方法显然需要一些资源上的支持

第四种方法自定义一个ContentProvider会稍显麻烦

而最后一种方法是比较实际的,但是如果目录结构非常复杂,又是css又是js,再加上很多图片 就会比较麻烦

我最终是选用了WebView去实现这个功能,但是如果对于Web的操作上有一些特殊的要求(比如需要地址栏等等的),就需要自己额外操作

 

综上来说WebView和拷到SD卡两种方法是比较好的 各有利弊 还需要根据情况去讨论

0
0
分享到:
评论

相关推荐

    javascript写的windows资源管理器

    本javascript程序是我自己利用业余时间做的,主要是编写javascript进一步对其进行控制。 因为时间的关系只提供了局部份功能,还有很多代码和函数都没有进行优化,(注释也较少)比如错误处理,浏览器嗅探等。 这里...

    微信小程序-微信小程序地图定位选点存储

    本程序数据管理功能基于LeanCloud提供的数据存储功能,在开发程序前需要在云端创建应用,并将对应信息初始化到程序中 代码结构 将本程序代码直接使用微信开发者工具打开即可编译调试 根目录 app.js 初始化小程序,...

    任意文件浏览器,可以查看DLL文件、压缩文件等,很方便的东东

    Office一族的电脑中都会保存着各种各样的文件,如歌曲、电影、图片、各种文本文件、Word文件、Excel电子文稿、压缩文件等等,每个文件都有默认的打开程序,如mp3文件使用Windows Media Player播放,rm文件使用...

    Axure扩展程序20190703.zip

    当使用chrome浏览器打开Axure原型生成的HTML文件时总是打不开,并提示需要添加扩展程序。如果你遇到了这个问题其实很好解决,只需在浏览器中添加一个扩展程序就可以解决了。 在网上找了很多的扩展程序尝试添加,但...

    《Delphi7程序设计技巧与实例》配书光盘

    __________使用方法: 建议按照书中步骤自己完成程序,如有需要,可以打开光盘中相应文件进行参考,或把源代码拷贝到相应项目所在目录下。也可以把所有文件拷贝到硬盘上,然后去掉文件和目录的只读属性,编译工程...

    文本文件转换器,文本文件编辑器,Web浏览器

    本程序(附源代码)具有的功能: 1). 一个文本文件编辑器. 可以取代记事本. 在NotePad中,当设置字体大于11点时,... 本程序可以将.txt文件转换成.html文件,并加了简单的css来调节行距,字体等,以便于阅读,并支持简单的编辑.

    wordpress 星宿UI v1.0.3 小程序开源 文章资讯视频资源下载

    打开星宿1.0文件夹后会有4个文件:xinshu(小程序源码),pods.html(数据字段), 星宿插件,pods插件;注:如果之前是有安装过0.1-0.8的大佬们之前是是有在主题的funtions文件夹添加一个段代码的, 我们要先这段...

    java反编译程序.rar

     XJad还带有导出当前编辑器中的代码为HTML文件的功能,HTML文件保持代码高亮显示的样式风格。  1、反编译class文件:打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件,保存至当前文件夹,并在编辑...

    Sketchup8 patch 文件

    这时打开了资源管理器,找到 Sketchup 2014 安装所在的文件夹,比如: C:\Program Files (x86)\SketchUp\SketchUp2014 将sketchup.exe文件选上,单击打开。 3. 这时又会出现找不文件的对话框,单击是。 选择,...

    MicrosoftHTMLHelpWorkshopV1.3汉化版.rar

    将工程文件保存在某一目录下并给予文件名。此时弹出主编辑窗口,如图1。  2.单击右边的“选项”按钮,在弹出的对话框中我们可以设置文件的属性。包括文件标题、压缩率、排序、各种文件信息、搜索支持、宏定义、...

    绝地程序编辑器 v1.0.1.4 源代码

    多种选择模式支持, ●正常选择模式 (Alt+N) ●列选择模式 (Alt+C) ●行选择模式 (Alt+L)★支持程序语言语法高亮度显示颜色的可视化调整:★支持书签:十个书签, 使用方法同Delphi: Ctrl+Shift+数字 使用或清除书签,...

    反编译apk文件工具及使用方法

    反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。 转载自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html 工具下载: 在http://code.google.com/p/android-apktool/下 载获得,apktool-...

    素材下载站整站程序(帝国CMS内核).rar

    第一步:解压程序上传到自己的主机或者服务器目录下 第二步:还原数据库文件到您的数据库目录下 这里采用帝国备份王备份的数据库,会恢复数据的请跳过此步骤 新手请访问自助教程专区的数据库还原,帝国备份王...

    KODExplorer 芒果云-资源管理器

    - root用户非服务器路径下文件预览(图片、mp3、视频、html、swf、……php代理输出文件内容,http方式) - 对话框最小化或关闭,重置最大index为焦点窗口 - 图片缩略图生成:小于5k则不生成(直接输出) - 加载...

    桃源企业文件管理系统 v3.3.zip

    由后台管理员启用并设置好公共空间各目录名称及共享权限,前台用户登录都可以按照分配给自己的权限(完全、只读、添加等)进入公共空间,能够实现了各个公司、部门、工作组只能查看有权查看的文件,并可按权限进行...

    SSM通用框架,针对微信小程序图片(文件)上传的完整Demo,配带小程序上传图片页面代码.zip

    自2017年正式上线以来,小程序凭借其便捷性、易获取性和出色的用户体验迅速获得市场认可,并成为连接线上线下服务的重要桥梁。 小程序的核心特点包括: 零安装:用户只需通过微信扫一扫或搜索功能,即可打开和...

    ASP.NET 程序设计习题答案 尚俊杰 编著(完整版含代码)

    7.在资源管理器中可以直接打开以html做后缀名的静态网页文件,但是却不能打开asp.net这种动态网页文件,因为这些文件只有经过服务器端的解释才能正确显示。 8.这种改动是可以的,因为asp.net全面兼容一般的html标示...

    FilesNet文件管理器 v1.3.5065

    文件与目录翻页分开,即使管理同一目录下的数万个文件也不再出现程序超时现象。8。功能强大,除了asp版具备的全部功能如上传、下载、编辑、批量复制、移动、粘贴外还具备文件快速过滤搜索,智能修改文件属性。9。...

Global site tag (gtag.js) - Google Analytics