一、前端navigator.maxTouchPoints获取屏幕是否支持触控。
二、navigator.maxTouchPoints c++接口修改。
1、third_party\blink\renderer\core\events\navigator_events.idl
// https://w3c.github.io/pointerevents/#extensions-to-the-navigator-interface[ImplementedAs=NavigatorEvents
] partial interface Navigator {[HighEntropy=Direct, MeasureAs=NavigatorMaxTouchPoints] readonly attribute long maxTouchPoints;
};
2、接口实现c++
third_party\blink\renderer\core\events\navigator_events.cc
third_party\blink\renderer\core\events\navigator_events.h
namespace blink {int32_t NavigatorEvents::maxTouchPoints(Navigator& navigator) {LocalDOMWindow* window = navigator.DomWindow();return window ? window->GetFrame()->GetSettings()->GetMaxTouchPoints() : 0;
}} // namespace blink
maxTouchPoints >0 支持触屏。
maxTouchPoints = 0 不支持触屏。
三、总结:
指纹只需要在NavigatorEvents::maxTouchPoints函数修改即可