在工作中碰到一个情况,要调用系统的浏览器去加载一个网页,而这个网页是放在程序路径下的
首先,如何去调用系统的浏览器
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卡两种方法是比较好的 各有利弊 还需要根据情况去讨论
分享到:
相关推荐
本javascript程序是我自己利用业余时间做的,主要是编写javascript进一步对其进行控制。 因为时间的关系只提供了局部份功能,还有很多代码和函数都没有进行优化,(注释也较少)比如错误处理,浏览器嗅探等。 这里...
本程序数据管理功能基于LeanCloud提供的数据存储功能,在开发程序前需要在云端创建应用,并将对应信息初始化到程序中 代码结构 将本程序代码直接使用微信开发者工具打开即可编译调试 根目录 app.js 初始化小程序,...
Office一族的电脑中都会保存着各种各样的文件,如歌曲、电影、图片、各种文本文件、Word文件、Excel电子文稿、压缩文件等等,每个文件都有默认的打开程序,如mp3文件使用Windows Media Player播放,rm文件使用...
当使用chrome浏览器打开Axure原型生成的HTML文件时总是打不开,并提示需要添加扩展程序。如果你遇到了这个问题其实很好解决,只需在浏览器中添加一个扩展程序就可以解决了。 在网上找了很多的扩展程序尝试添加,但...
__________使用方法: 建议按照书中步骤自己完成程序,如有需要,可以打开光盘中相应文件进行参考,或把源代码拷贝到相应项目所在目录下。也可以把所有文件拷贝到硬盘上,然后去掉文件和目录的只读属性,编译工程...
本程序(附源代码)具有的功能: 1). 一个文本文件编辑器. 可以取代记事本. 在NotePad中,当设置字体大于11点时,... 本程序可以将.txt文件转换成.html文件,并加了简单的css来调节行距,字体等,以便于阅读,并支持简单的编辑.
打开星宿1.0文件夹后会有4个文件:xinshu(小程序源码),pods.html(数据字段), 星宿插件,pods插件;注:如果之前是有安装过0.1-0.8的大佬们之前是是有在主题的funtions文件夹添加一个段代码的, 我们要先这段...
XJad还带有导出当前编辑器中的代码为HTML文件的功能,HTML文件保持代码高亮显示的样式风格。 1、反编译class文件:打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件,保存至当前文件夹,并在编辑...
这时打开了资源管理器,找到 Sketchup 2014 安装所在的文件夹,比如: C:\Program Files (x86)\SketchUp\SketchUp2014 将sketchup.exe文件选上,单击打开。 3. 这时又会出现找不文件的对话框,单击是。 选择,...
将工程文件保存在某一目录下并给予文件名。此时弹出主编辑窗口,如图1。 2.单击右边的“选项”按钮,在弹出的对话框中我们可以设置文件的属性。包括文件标题、压缩率、排序、各种文件信息、搜索支持、宏定义、...
多种选择模式支持, ●正常选择模式 (Alt+N) ●列选择模式 (Alt+C) ●行选择模式 (Alt+L)★支持程序语言语法高亮度显示颜色的可视化调整:★支持书签:十个书签, 使用方法同Delphi: Ctrl+Shift+数字 使用或清除书签,...
反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。 转载自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html 工具下载: 在http://code.google.com/p/android-apktool/下 载获得,apktool-...
第一步:解压程序上传到自己的主机或者服务器目录下 第二步:还原数据库文件到您的数据库目录下 这里采用帝国备份王备份的数据库,会恢复数据的请跳过此步骤 新手请访问自助教程专区的数据库还原,帝国备份王...
- root用户非服务器路径下文件预览(图片、mp3、视频、html、swf、……php代理输出文件内容,http方式) - 对话框最小化或关闭,重置最大index为焦点窗口 - 图片缩略图生成:小于5k则不生成(直接输出) - 加载...
由后台管理员启用并设置好公共空间各目录名称及共享权限,前台用户登录都可以按照分配给自己的权限(完全、只读、添加等)进入公共空间,能够实现了各个公司、部门、工作组只能查看有权查看的文件,并可按权限进行...
自2017年正式上线以来,小程序凭借其便捷性、易获取性和出色的用户体验迅速获得市场认可,并成为连接线上线下服务的重要桥梁。 小程序的核心特点包括: 零安装:用户只需通过微信扫一扫或搜索功能,即可打开和...
7.在资源管理器中可以直接打开以html做后缀名的静态网页文件,但是却不能打开asp.net这种动态网页文件,因为这些文件只有经过服务器端的解释才能正确显示。 8.这种改动是可以的,因为asp.net全面兼容一般的html标示...
文件与目录翻页分开,即使管理同一目录下的数万个文件也不再出现程序超时现象。8。功能强大,除了asp版具备的全部功能如上传、下载、编辑、批量复制、移动、粘贴外还具备文件快速过滤搜索,智能修改文件属性。9。...