火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 817|回复: 8
打印 上一主题 下一主题

[安卓] 浏览框拦截请求数据这样写错哪了?谢谢

[复制链接]

4

主题

82

帖子

928

积分

高级会员

Rank: 4

积分
928
跳转到指定楼层
楼主
发表于 2023-10-9 17:16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kike 于 2023-10-9 17:20 编辑

<火山程序 类型 = "通常" 版本 = 1 />

方法 浏览框_拦截请求 <接收事件 类型 = 整数 注释 = "当需要拦截网页元素时,添加本事件通过\"资源响应\"参数进行拦截操作.">
参数 来源对象 <类型 = 浏览框 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 欲拦截资源 <类型 = 浏览器欲拦截资源 注释 = "通过此参数控制拦截">
参数 即将跳到资源 <类型 = 浏览器资源请求>
{
    如果 (来源对象 == 浏览框1)
    {
        如果 (文本包含 (到文本 (即将跳到资源.取URL ()), "298%2C2000"))
        {
            调试输出 (字节数组到文本 (欲拦截资源.资源.取响应数据 ().到字节数组 ()))
        }
        如果 (文本包含 (到文本 (即将跳到资源.取URL ()), "logo"))
        {
            变量 资源 <参考 类型 = 浏览器资源响应>
            资源 = 浏览器资源响应.创建 ("image/png", , 字节流)
            欲拦截资源.资源 = 资源
        }
    }
    返回 (0)

}
错误: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.InputStream android.webkit.WebResourceResponse.getData()' on a null object reference
<C:\Users\Administrator\Desktop\webview_test\src\main.v>, 34: 错误: 位于 hsh.yl.网页拦截窗口.浏览框_拦截请求
<C:\Users\Administrator\Desktop\webview_test\src\main.v>, 26: 错误: 位于 hsh.yl.网页拦截窗口$1.dispatch
<D:\Program Files\win_android\plugins\vprj_android\classlib\sys\android\ctrl_webview\a_ctrl_webview.v>, 49: 错误: 位于 hsh.anzh.zj.llk.浏览框.拦截请求
<D:\Program Files\win_android\plugins\vprj_android\classlib\sys\android\ctrl_webview\a_ctrl_webview.v>, 415: 错误: 位于 hsh.anzh.zj.llk.浏览框$3.shouldInterceptRequest


回复

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36697
沙发
发表于 2023-10-9 20:56:59 | 只看该作者
只能把你写的例子发出来看看了。。光看这个不知道是哪里的问题。
写个火山例子,把整个项目打包上传。 (注意删除_int目录)
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

4

主题

82

帖子

928

积分

高级会员

Rank: 4

积分
928
板凳
 楼主| 发表于 2023-10-10 13:05:14 | 只看该作者

浏览框拦截请求数据这样写错哪了?谢谢

本帖最后由 kike 于 2023-10-10 13:22 编辑
创世魂 发表于 2023-10-9 20:56
只能把你写的例子发出来看看了。。光看这个不知道是哪里的问题。
写个火山例子,把整个项目打包上传。 (注 ...

无法上传附件?每次上传完成!失败1
官方浏览器拦截例子:
浏览框地址:http://appstore.ldmnq.com/menu_manager
浏览框_拦截请求事件中加入如下:
<火山程序 类型 = "通常" 版本 = 1 />
如果 (文本包含 (到文本 (即将跳到资源.取URL ()), "menu_manager"))
{
    调试输出 (字节数组到文本 (欲拦截资源.资源.取响应数据 ().到字节数组 ()))
}

运行正确是返回:
{"msg":"错误"}
但是它出错退出了。传网盘吧
链接: https://pan.baidu.com/s/1DwW0pyAJM3_GB0At7Cb82w?pwd=d5ir 提取码: d5ir 复制这段内容后打开百度网盘手机App,操作更方便哦


回复

使用道具 举报

4

主题

82

帖子

928

积分

高级会员

Rank: 4

积分
928
地板
 楼主| 发表于 2023-10-11 12:29:26 | 只看该作者
附件终于可以上传了: webview_test.zip (154.9 KB, 下载次数: 4)
回复

使用道具 举报

24

主题

186

帖子

1617

积分

金牌会员

Rank: 6Rank: 6

积分
1617
5#
发表于 2023-10-31 14:51:55 | 只看该作者
我测试了下,你这个错误在于【欲拦截资源.资源】是空对象,也就报错了,
获取拦截返回的数据好像不能这么用,这个好像是在请求前的拦截,这时候还没有请求也就没有返回数据,具体怎么获取拦截返回的数据我页没找到:噜阿噜
回复

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36697
6#
发表于 2023-10-31 17:07:36 | 只看该作者
安卓的浏览器这个没办法直接取响应数据的。。所以:欲拦截资源.资源.取响应数据 ()   是错误的写法。
想要获取就需要自己网页访问来获取。

看到访问的地址没,通过地址自己访问,如果涉及到cookie问题,访问的时候取出浏览框的cookie,加到网页访问代码里面。



安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36697
7#
发表于 2023-10-31 17:07:52 | 只看该作者
howill2021 发表于 2023-10-31 14:51
我测试了下,你这个错误在于【欲拦截资源.资源】是空对象,也就报错了,
获取拦截返回的数据好像不能这么用 ...

要自己进行网页访问
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

24

主题

186

帖子

1617

积分

金牌会员

Rank: 6Rank: 6

积分
1617
8#
发表于 2023-10-31 18:36:16 | 只看该作者
创世魂 发表于 2023-10-31 17:07
要自己进行网页访问

魂总,如果是一个post请求,如何获取请求参数呢,我看目前只能获取get参数
回复

使用道具 举报

14

主题

304

帖子

1518

积分

金牌会员

接单Q:413795326

Rank: 6Rank: 6

积分
1518
QQ
9#
发表于 2024-4-26 21:31:18 | 只看该作者
创世魂 发表于 2023-10-9 20:56
只能把你写的例子发出来看看了。。光看这个不知道是哪里的问题。
写个火山例子,把整个项目打包上传。 (注 ...

能拦截 指定 url么不让他加载  
(\__/)
( •ᴗ•)
/> 软件 小程序 APP POST 脚本 建站 QQ:413795326
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-18 14:04 , Processed in 0.096978 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表