安卓开发怎么在APP内部调用手机系统浏览器打开指定html并获取HTML的数据?

安卓开发怎么在APP内部调用手机系统浏览器打开指定html并获取HTML的数据?,第1张

Android开发_如何调用 浏览器访问网页和Html文件

一、启动android默认浏览器

Intent intent= new Intent()

intent.setAction('android.intent.action.VIEW')

Uri content_url = Uri.parse('http://www.cnblogs.com')

intent.setData(content_url)

startActivity(intent)

这样子,android就可以调用起手机默认的浏览器访问。

二、指定相应的浏览器访问

1、指定android自带的浏览器访问

( “com.android.browser”:packagename ;“com.android.browser.BrowserActivity”:启动主activity)

Intent intent= new Intent()

intent.setAction('android.intent.action.VIEW')

Uri content_url = Uri.parse('http://www.cnblogs.com')

intent.setData(content_url)

intent.setClassName('com.android.browser','com.android.browser.BrowserActivity')

startActivity(intent)

2、启动其他浏览器(当然该浏览器必须安装在机器上)

只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器

intent.setClassName('com.android.browser','com.android.browser.BrowserActivity')

uc浏览器':'com.uc.browser', 'com.uc.browser.ActivityUpdate“

opera :'com.opera.mini.android', 'com.opera.mini.android.Browser'

qq浏览器:'com.tencent.mtt', 'com.tencent.mtt.MainActivity'

三、打开本地html文件

打开本地的html文件的时候,一定要指定某个浏览器,而不能采用方式一来浏览,具体示例代码如下

Intent intent= new Intent()

intent.setAction('android.intent.action.VIEW')

Uri content_url = Uri.parse('content://com.android.htmlfileprovider/sdcard/help.html')

intent.setData(content_url)

intent.setClassName('com.android.browser','com.android.browser.BrowserActivity')

startActivity(intent)

关键点是调用了”content“这个filter。

以前有在win32编程的朋友,可能会觉得用这种形式”file://sccard/help.html“是否可以,可以很肯定的跟你说,默认的浏览器设置是没有对”file“这个进行解析的,如果要让你的默认android浏览器有这个功能需要自己到android源码修改manifest.xml文件,然后自己编译浏览器代码生成相应的apk包来重新在机器上安装。

大体的步骤如下:

1、打开 packages/apps/Browser/AndroidManifest.xml文件把加到相应的后面就可以了

2、重新编译打包,安装,这样子,新的浏览器就支持”file“这个形式了

有兴趣的可以去试试。

下载一个能打开html的app 或者把html文件扩展名改成text就能打开了,

不知道你是要修改代码还是做手机网页演示,

网页演示的话 搭建本地服务器,然后使用手机上本地的wifi用浏览器访问你的电脑地址就能看了

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文件。

网上有例子,你可以搜索!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7412920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存