chromium浏览器页面longclick弹出菜单功能的实现

本文详细介绍了在Chromium浏览器中实现页面长按弹出菜单的步骤和原理,涉及到事件响应、坐标信息传递以及底层与上层交互的流程。通过封装contentshell并利用IPC通信在主进程和渲染进程中传递数据,最终实现在应用层的菜单展示和操作。
摘要由CSDN通过智能技术生成

最开始做这个功能是在chromium34上面实现的,后来移植到39上面,调用的相关的系统和内核的底层的接口还都好用,从34到39版本变化,chromium内核对于事件的传递这块逻辑代码应该没有太大的变化。

首先说下webkit浏览器是如何实现长按网页弹出菜单的:

从最开始的说起,对于android使用原生webview的浏览器来讲,长按一个链接(当然也包括图片,网站,邮箱,手机号码等),都会弹出一个菜单供用户选择,当然用户点击长按的内容不同,菜单弹出来的内容也不一样。那么系统把判断用户点击的类别大致包括下面几类:WebView.HitTestResult.PHONE_TYPE,WebView.HitTestResult.EMAIL_TYPE,WebView.HitTestResult.GEO_TYPE,WebView.HitTestResult.IMAGE_TYPE,WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE,WebView.HitTestResult.SRC_ANCHOR_TYPE,WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE。

这些在一个android原生浏览器的代码中,都是可以看到的,上面也写出了类名,方便大家查找。

那么这些信息,在应用层是如何得到的呢?在webview依赖的activity中,有一个方法:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值