programing

웹 뷰에서 터치가 Apple Pencle인지 핑거인지 탐지(원본 리액트)

prostudy 2022. 3. 8. 22:15
반응형

웹 뷰에서 터치가 Apple Pencle인지 핑거인지 탐지(원본 리액트)

사파리 모바일에서 터치는 다음을 사용하여 Apple Pencle 대 기타(손가락/마우스)로 분류할 수 있다.

event.touches[0].touchType === 'stylus' //pencil
event.touches[0].touchType !== 'stylus' //other

그러나 반응 네이티브 웹뷰에서 수신된 모든 이벤트(애플 펜슬과 핑거 사용)는 다음과 같이 수신된다.

touchType === 'direct' //inside webview, both pencil and other

웹 뷰에서 Apple Pencle의 터치감을 감지하는 방법은?

보아하니event.touches[0] > 0또 다른 가능성은 있지만 이 또한0웹 뷰의 두 유형 모두에 대해.

(이 문제가 reactive native의 문제인지 아니면 웹 뷰의 기본 제공 제한 사항인지 확실하지 않음).

관련:

https://github.com/CRAlpha/react-native-wkwebview에서 React Native WebView 구성 요소를 WKWebView 구성 요소로 교체하여 이 문제를 해결했다.

즉, 교체import { WebView } from 'react-native'와 함께import WKWebView from 'react-native-wkwebview-reborn'

이를 위해서는 다양한 수정과 해결책이 필요했지만 결국 성공적이었으며, 이제 이벤트에는 다음과 같은 추가 매개변수가 포함된다.

  • 터치타입
  • 강제하다
  • 고도각
  • 방위각

이전 WebView는 Pencle/Stylus와 관련된 추가 이벤트 매개변수를 지원하지 않을 수 있다(그러나 내가 잘못된/구 버전을 사용 중이거나 아마도 Resact Native가 기본 WebView 구성 요소에서 이 매개변수를 통과하지 못할 수도 있다).만약 누군가가 명확히 할 수 있다면, 나는 기꺼이 좀 더 자세히 업데이트 할 것이다.)

보면iOS 8개봉일

2014년 9월 17일

그리고 애플 연필 발매일

2015년 11월 11일

그리고 애플 포스터치 출시 날짜

2014년 9월 9일

이제 사과에서 아래 기사를 보면

https://developer.apple.com/documentation/webkit/wkwebview

중요

iOS 8.0 및 OS X 10.10부터 WKWebView를 사용하여 웹 콘텐츠를 앱에 추가하십시오.UIWebView 또는 WebView를 사용하지 마십시오.

그래서 아마 그 일이 일어날 수 있을 것이다.WKWebView에 비해 이러한 것들에 대한 지지자가 있다.UIWebView. 그러나 둘 사이의 명확한 차이점을 가진 문서가 없기 때문에 실험 없이는 확인할 수 없다.

사용에 대한 큰 논의가 있었다.WKWebViewreact native의 경우 기본적으로 iOS8+.아래에서도 같은 것을 찾을 수 있다.

https://github.com/facebook/react-native/issues/321

다음에서 코멘트를 볼 수 있다.WKWebView구성 요소 유지 관리자에 반응

반응-원격-웹뷰 유지관리자.나는 이 repo가 핵심으로 통합될 수 있는 제한된 혜택이 있다는 것에 동의한다. 그 중 하나가 엑스포 지원이다(Expo는 여전히 UIWebView를 사용한다.하지만 나는 이것이 'Ract Original'이라기 보다는 엑스포에 더 큰 이슈라고 생각한다.

IMO, React Native는 "핵심" 브리지에 초점을 맞추고 이 구성 요소는 제3자 구성 요소로 행복하게 살아야 한다.이것은 사람들이 이 프로젝트에 실제로 기여하는 것을 더 쉽게 한다.또한, 유연한 출시 일정을 의미한다(Ract Native의 월간 출시 일정과는 반대).

그리고 나는 React Native docs를 개선하는 것이 UIWebView와 WKWebView에 관한 결정을 사람들에게 더 잘 인식시키고 해결책을 제시하기 위한 더 좋은 방법이라는 @brunolemos에 동의한다.

그래서 나는 그것이 가능할 수도 있다고 생각한다.WKWebView더 이상 사용되지 않는 사람보다 더 많은 이벤트 기능을 가지고 있다.UIWebView그러나 불행히도 몇 시간 동안 땅을 파본 후 나는 그런 공식적인 정보를 찾을 수 없었다.iPhone/iPad와 함께 실험을 했으면 추가 정보를 추가했을 텐데.

시뮬레이터를 사용해 봤더니 두 종목 모두 아래 필드가 나왔다.UIWebView그리고WKWebView

WKWebView

이벤트

UIWebView

UIWevView

내가 사용한 JSFiddle

https://jsfiddle.net/J4djY/166/

하지만 물리적인 장치가 없기 때문에 일부 관찰 결과를 확인할 수 없다.

참조URL: https://stackoverflow.com/questions/49142047/detect-whether-touch-was-apple-pencil-or-finger-in-webview-react-native

반응형