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

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

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

一、启动android默认浏览器

Intent intent= new Intent();

intentsetAction('androidintentactionVIEW');

Uri content_url = Uriparse('>

关于android 获取请求地址的详细例子请参考android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,  源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳

Fiddler是类似代理服务器的形式工作,它能够记录所有你的电脑和互联网之间的>

2、方法优劣

[优点]:

1)Fiddler *** 作简单、方便、功能强大

2)能实时抓包,可模拟修改请求

2)只需要手机支持代理即可

3)适用广,安卓、Iphone、Ipad、WinPhone等支持代理手机均适用

[缺点]:

1)电脑需要安装Fiddler

2)测试手机需要支持Wifi

3)测试手机与电脑需要同一网络

4)所测APP需支持代理

3、准备工作

1)检查电脑网络连接

a使用同网络内的另一台电脑)ing本机,检查是否连通正常。

原因:我之前测HTML5项目就发现Fiddler代理抓不到包,手机设置均正确,后发现是网络内找不到本机,本机防火墙设置问题。

另外需要关注是否同一网络,如果手机GPRS等上网,你在局域网内抓包哥觉得你可以改行了

(约定:后文所述Fiddler所在电脑均称为本机)

2)Fiddler安装

a下载地址: >

b安装:省略(下一步下一步即可)

3)Fiddler配置

a允许远程计算机连接Fiddler

菜单:Tools-> Fiddler Options->Connections,勾选"Allow remote computers to connect"

注:8888为默认端口号,可修改,但需注意两点,一是本机空闲端口,二是手机代理设置时端口要一致。

b配置可捕获>

菜单:Tools-> Fiddler Options->Connections,勾选"Capture >

再勾选"Decrypt >

注1:勾选项英文不认识,请Google,不另做解释

4)手机安装>

a首先确定Fiddler所在电脑的IP地址:例:19216888

b打开被测手机浏览器,访问>

注:Iphone、Ipad安装则很简单,点击安装即可。Android安装稍微麻烦点,则需要先设置手机锁屏密码、PIN码,安装证书时会提示,按步骤走即可。

4、实例

ThinkDrive抓包实例

一期测试时,涉汲到APP安全测试,因此需要查看传输数据是否存在明文密码等。

1)开启Fiddler,确定本机IP、Fiddler端口号

本机IP:19216888

Fiddler端口号:8888

2)手机连接本机所在同网络Wifi,设置代理

a代理主机名:Fiddler所在电脑IP

b代理服务器端口: Fiddler使用的端口

3)APP *** 作,生成请求数据

a例:登录

b例:退出登录

4)分析Fiddler抓包数据

a例:登录请求分析

1)双击查看登录请求,选择WebForms或JSON等其他类标签,查看请求参数值,对照接口文档及你想要测试的点分析,请求是否正确,查看返回数据是否正确。

2)同帐号,不同密码;不同帐号,同密码等测试用例,测试多次登录后发现,密码仅为MD5加密,没有对密码进行很好的加密传输

3)分析存在以下问题:

问题1:帐号密码采用>

问题2:密码虽采用MD5加密,但传输未加密,简单密码可以在线解密(图中密码在线解密不到1秒:123qwe);

问题3:密码不解密也一样可以登录,通过A帐号在app登录,再用sniffer得到的B 帐号与密码(MD5值),使用Fiddler修改A帐号的请求完成B帐号在APP登录。

注1:Fiddler功能使用,请Google或百度,此处不详说

注2:以上实例仅为参考,具体测试,以所相关业务及测试目标为导向进行测试分析。

5、其他

本文虽主要对Android手机抓包举例,但其目的是说明,不管是电脑,还是手机,还是其他上网终端,都可以通过代理的方式来抓包(HTTS、>

Android 中Activity之间的转跳是通过Intent来传递数据的,可以将URL放进Intent中,实现转跳后加载URL。

Android中intentputExtra(); 是用于Intent传递数据的。

Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。 

Android的三个基本组件——Activity,Service和Broadcast Receiver——都是通过Intent机制激活的,不同类型的组件有不同的传递Intent方式:

要激活一个新的Activity,或者让一个现有的Activity做新的 *** 作,可以通过调用ContextstartActivity()或者ActivitystartActivityForResult()方法。 

要启动一个新的Service,或者向一个已有的Service传递新的指令,调用ContextstartService()方法或者调用ContextbindService()方法将调用此方法的上下文对象与Service绑定。

ContextsendBroadcast()、ContextsendOrderBroadcast()、ContextsendStickBroadcast()这三个方法可以发送Broadcast Intent。发送之后,所有已注册的并且拥有与之相匹配IntentFilter的BroadcastReceiver就会被激活。

Intent一旦发出,Android都会准确找到相匹配的一个或多个Activity,Service或者BroadcastReceiver作响应。所以,不同类型的Intent消息不会出现重叠,即Broadcast的Intent消息只会发送给BroadcastReceiver,而决不会发送给Activity或者Service。由startActivity()传递的消息也只会发给Activity,由startService()传递的Intent只会发送给Service。

我觉得这不是软件进行获取网址的,这是本身浏览器的功能吧!

我用的是手机QQ浏览器,别的浏览器不知道。在网页最上方有网址的,长按复制就可以了啊!

我比较喜欢手机QQ浏览器,我觉得在手机上时候用很方便,没什么难理解的 地方

界面还很简洁,可以设置自己喜欢的颜色,自己喜欢的,自己喜欢的模式什么的。

我觉得总比还是很不错的呢!暂时没发现什么问题。

以上就是关于安卓开发怎么在APP内部调用手机系统浏览器打开指定html并获取HTML的数据全部的内容,包括:安卓开发怎么在APP内部调用手机系统浏览器打开指定html并获取HTML的数据、如何抓取Android内嵌网页地址、Android 中 怎么样取得跳转之后 浏览器中URL地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9637440.html

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

发表评论

登录后才能评论

评论列表(0条)

保存