`

打开自己程序下的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
分享到:
评论

相关推荐

    mfc程序调用html资源

    在MFC中,这通常是通过调用 `Navigate2` 方法实现的,该方法接受一个URL或资源路径作为参数,加载并显示指定的网页或资源。 在示例代码中,`Navigate2(filepath,NULL,NULL);` 这一行代码就是调用Web浏览器控件的 `...

    无法打开CHM文件的解决方法

    ### 无法打开CHM文件的解决方法 在日常工作中,我们经常会遇到各种格式的文档,其中CHM(Compiled HTML Help)文件是一种常见的帮助文件格式,主要用于存储一系列HTML页面及其相关资源,如图像、声音等。然而,在...

    一个将目录转为html文件显示的程序

    3. **ShlObj.dcu**:这个文件与Windows Shell对象有关,可能包含了对系统资源管理器操作的支持,如打开、复制、粘贴等。通过Shell对象,程序可以访问Windows的文件操作接口,实现更直观的用户交互。 4. **RPrev.dcu...

    微信小程序实现打开并下载服务器上面的pdf文件到手机

    在微信小程序中实现打开并下载服务器上的PDF文件到手机,主要涉及到两个核心功能:一是通过`wx.downloadFile`接口下载文件,二是利用`wx.openDocument`接口预览或打开PDF文件。以下是对这两个功能的详细解释: 1. *...

    Android打开本地HTML网页AndroidStudio工程.rar

    这个"Android打开本地HTML网页AndroidStudio工程.rar"文件很可能包含了一个简单的示例项目,演示如何在Android应用中加载并显示本地HTML文件。这里我们将深入探讨实现这一功能所涉及的关键知识点。 1. **WebView...

    C#生成Html并在WebBrowser中显示

    为了使代码更具有可读性和维护性,我们通常会把HTML内容存储在资源文件中,或者创建一个方法来生成复杂的HTML结构。例如,可以创建一个方法来生成表格: ```csharp public string GenerateTable(List[]> data) { ...

    QT读取Txt文件并显示在界面上完整版

    在这个项目中,“QT读取Txt文件并显示在界面上完整版”是一个利用QT库实现的简单应用,它实现了从本地文件系统中选择TXT文本文件并将其内容在应用程序的textBrowser组件中显示出来。下面我们将详细讨论相关的知识点...

    打开U盘程序的最快速方法.docx

    例如,在最后一行命令中,EXPLORER.EXE 是指定的打开程序,参数 "/e" 则表示用资源管理器打开。 因此,我们可以根据需要编辑命令来快速打开 U 盘程序,并且可以使用 Start 命令来启动多个程序或文件夹。

    vs中编写qt程序如何像qt create一样添加资源文件

    总结来说,在VS中编写Qt程序并引入资源文件,主要步骤包括创建资源文件、生成资源头文件、配置项目属性以及在代码中使用资源。尽管与Qt Creator相比过程稍显繁琐,但通过以上步骤,你可以在VS环境中享受到与Qt ...

    asp.net 同时打开多个文件并在多个窗口显示源码

    总之,"Example076-同时打开多个文件并在多个窗口显示"的资源提供了一个在VB.NET环境中实现多文件打开的示例,这对于学习和提升ASP.NET开发技能非常有帮助。通过深入研究这个示例,开发者可以更好地理解和掌握如何...

    Java程序把Word文档直接转换成HTML文件

    ### Java程序将Word文档直接转换成HTML文件:深入解析与实践 #### 一、引言 在企业级应用开发中,文档处理是一项常见的需求。尤其是将Word文档转换为其他格式,如HTML,以便于在网络环境中展示或进行进一步的处理...

    打开DLL文件的工具

    从标签“打开.DLL文件”我们可以推断,此工具的主要功能就是允许用户直接打开并浏览DLL文件的内容,这通常需要特定的程序支持,因为DLL文件不是可以直接执行的文件类型。 在压缩包的文件名称列表中: 1. "ResHacker...

    android用于打开各种文件的intent

    标题与描述中的关键词“android用于打开各种文件的intent”揭示了本文将探讨的主题:在Android平台上,如何使用Intent机制来启动应用程序以打开不同类型的文件。Intent是Android四大组件之一,它提供了一种方式来...

    uhtm文件查看器,uhtm资源查看,uhtm转换器

    安装并运行这个程序后,用户可以在没有UC浏览器的情况下打开uhtm文件,或者将它们转换成可以在其他浏览器中打开的标准html格式。这个程序可能提供了用户友好的界面,使得操作流程简化,用户只需几步就能完成转换。 ...

    浏览html文件 MDI

    在这个场景下,我们讨论的是一个用于查看HTML文件的应用程序,它支持在MDI环境中运行。 描述中提到的"HTMViewerHtml文件浏览.zip"是一个压缩包,包含了实现这一功能的源代码和相关文件。这个项目可能是用Visual C++...

    C#窗口程序中嵌入网页调用js

    ### C#窗口程序中嵌入网页并调用JS方法详解 #### 一、引言 在C#开发中,有时我们需要在Windows Forms应用程序中嵌入一个网页,并且能够与该网页中的JavaScript进行交互。这种需求常见于那些需要将现有Web应用集成...

    小程序预览PDF文件插件Pdf.js

    在Uniapp中,我们需要先在项目的`static`或`assets`目录下存放Pdf.js库,并将其引用路径添加到项目的配置文件中。例如: ```javascript // uniapp.config.js module.exports = { // ... staticFileGlob: ['**/*.{...

    常见的文件格式打开方法.docx

    总的来说,正确打开文件的关键在于了解文件的扩展名,并确保拥有正确软件来处理这些文件。对于不熟悉的格式,网上搜索其扩展名通常能找到相关信息和处理方法。同时,保持操作系统和软件更新也是确保能顺利打开新格式...

    ios-远程下载html资源zip,解压webview打开.zip

    如果HTML资源包含外部CSS、JavaScript等文件,我们需要确保这些文件与HTML在同一路径下,或者提供正确的相对路径或绝对URL。 在这个项目中,代码可能还涉及到了线程管理,比如在主线程上更新UI,在子线程中进行网络...

    EmEditor(大文件打开工具).rar

    用户可以根据自己的需求设置不同的编码格式,如UTF-8、GBK等,确保文件的正确显示和保存。 此外,EmEditor具有高度可定制性。用户可以通过调整界面布局、选择主题颜色、安装扩展插件等方式,打造一个符合个人工作...

Global site tag (gtag.js) - Google Analytics