热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java安卓html文件怎么打开方式_android浏览器打开本地html文件的方法

android浏览器打开本地html文件的方法有些html文件放在本地磁盘和sdcard,如何用打开这个网页呢?这种应用在测试时非常有用。有࿱

android 浏览器 打开本地html文件的方法有些html文件放在本地磁盘和sdcard,如何用打开这个网页呢?

这种应用在测试时非常有用。

有2个方法:

1. 使用文件管理器

如ES等,需要幸运的是你的文件管理器直接用浏览器打开。

2. 在浏览器输入地址

访问本地磁盘和SD卡上的HTML,前部分content://com.android.htmlfileprovider是Provider的标准,后面是程序目录。

比如sdcard的tesl.html

直接在浏览器里输入content://com.android.htmlfileprovider/sdcard/test.html回车就可以看到网页了。

在代码

webView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html")

如果是其它程序的私有html文件,这样做会失败。

这是由于com.android.htmlfileprovider的权限不够,如果是重写一个私有的HtmlProvider位于同一个应用中,应该能解决问题。然后就参考了原来的com.android.htmlfileprovider 源代码,改写了下。问题解决了,使用私有的HTMLProvider,可以轻松的访问手机内存中,程序私有目录下的html文件。

网上有例子;

package com.motodev.example;

import java.io.File;

import java.io.FileNotFoundException;

import android.content.ContentProvider;

import android.content.ContentValues;

import android.database.Cursor;

import android.net.Uri;

import android.os.ParcelFileDescriptor;

public class LocalHtmlProvider extends ContentProvider {

public static final Uri CONTENT_URI = Uri

.parse("content://com.motodev.example.localhtmlprovider");

public static final String BASE_URI = "content://com.motodev.example.localhtmlprovider";

public static final int BASE_URI_LEN = BASE_URI.length();

@Override

public int delete(Uri uri, String selection, String[] selectionArgs) {

throw new UnsupportedOperationException();

}

@Override

public String getType(Uri uri) {

String mimetype = uri.getQuery();

return mimetype == null ? "" : mimetype;

}

@Override

public ParcelFileDescriptor openFile(Uri uri, String mode)

throws FileNotFoundException {

if (!"r".equals(mode)) {

throw new FileNotFoundException("Bad mode for " + uri + ": " + mode);

}

String filename = uri.toString().substring(BASE_URI_LEN);

return ParcelFileDescriptor.open(new File(filename),

ParcelFileDescriptor.MODE_READ_ONLY);

}

@Override

public Uri insert(Uri uri, ContentValues values) {

throw new UnsupportedOperationException();

}

@Override

public boolean onCreate() {

return true;

}

@Override

public Cursor query(Uri uri, String[] projection, String selection,

String[] selectionArgs, String sortOrder) {

throw new UnsupportedOperationException();

}

@Override

public int update(Uri uri, ContentValues values, String selection,

String[] selectionArgs) {

throw new UnsupportedOperationException();

}

}



推荐阅读
author-avatar
喻维伦_753
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有