美文网首页
模拟点击,让系统相机相册弹框消失

模拟点击,让系统相机相册弹框消失

作者: SpringAlways | 来源:发表于2020-11-02 11:28 被阅读0次

问题起因: 公司一个客服页面接的meiqia,这个页面没有任何人维护,代码都找不到了。H5的机制可以跳过权限直接访问相册和文件,这不符合新的用户隐私政策。需要拦截。

image.png

思路:
查看层级,发现弹框是由不同的view和viewcontroller组成,包含UIVisualEffectView、_UIPopoverBackgroundVisualEffectView、_UIVisualEffectBackdropView、_UIVisualEffectContentView、UITransitionView、_UITextEffectsRemoteView、UIDocumentMenuViewController。出现这个框的时候,加载uiwindow上。

思路一:hook UIDocumentMenuViewController。实操之后发现只有文件有用,而且消失方法也不好操作
思路二:hook uiwindow的didaddsubview 根据view类型判断,同时筛掉keyboradwindow之类的。成功拿到弹出时机~

怎么消失呢?~

1、把加上uiwindow的view remove掉。不行,会导致各种行为不正常,webview都打不开了,通信service异常
2、让view滚动一下,触发焦点更改。不行 没反应
3、加一个透明的edittext,获取焦点,弹出键盘再消失。不行 依然不下去
4、加一个透明的button,发送事件sendActionsForControlEvents 没反应
5、js发送点击事件,依然没反应

var eventhyf = document.createEvent('Events');eventhyf.initEvent('touchstart',true,true);window.parent.document.querySelector('iframe[name=chat]').contentDocument.getElementById('_MEIQIA_INPUT').dispatchEvent(eventhyf);window.parent.focus();this.close();

6、dismissViewControllerAnimated 可以下去,但按钮点不动了
7、dismiss 再pop 下去后并且关闭页面了。一了百了~!

相关文章

网友评论

      本文标题:模拟点击,让系统相机相册弹框消失

      本文链接:https://www.haomeiwen.com/subject/icopvktx.html