사용 방법
Capacitor에서 장치 테스트
Capacitor iOS 앱에서 텍스트 선택과 확대鏡 렌즈를 비활성화합니다.
@capgo/capacitor-textinteraction Capacitor iOS 앱에서 텍스트 상호 작용을 켜거나 끌 수 있는 단일 호출을 제공합니다. 켜지면, 텍스트를 길게 누르면 더 이상 선택되지 않으며 복사 메시지 또는 iOS 15에서 재소개된 확대鏡 렌즈가 표시되지 않습니다. 웹 앱은 네이티브 셸 내에서 웹 페이지처럼 느껴지지 않습니다.
__CAPGO_KEEP_0__의 하부에서 플러그인은 WKPreferences.isTextInteractionEnabled __CAPGO_KEEP_0__의 WKWebView사용할 때
게임, 키오스크 및 그라파픽스 앱
- 길이 누르기 및 드래그 동작이 텍스트를 선택하지 않도록 해야 하는 경우 __CAPGO_KEEP_0__
- 사용자 정의 긴 클릭 메뉴 원래 선택 핸들러와 호출과 충돌하는
- 미디어 플레이어, 지도 및 카러셀 느린 스와이프가 루프를 트리거하는
- 브랜드화된 앱과 같은 UI 선택 가능한 레이블과 버튼이 원래 느낌을 깨트리는
사용자가 읽을 수 있는 긴 콘텐츠나 양식에 입력할 수 있는 곳에서 텍스트 상호 작용을 켜세요.
설치
bun add @capgo/capacitor-textinteraction
bunx cap sync
아니오 Info.plist 키, 권한 또는 capacitor.config.ts 필요한 항목이 없습니다.
| 플러그인 버전 | Capacitor 버전 | 유지보수 |
|---|---|---|
| v8.x | v8.x | 네 |
| v7.x | v7.x | 수요에 따라 |
| v6.x 및 이전 버전 | v6.x 및 이전 버전 | 아니오 |
앱 시작 시 텍스트 상호 작용 비활성화
import { Capacitor } from '@capacitor/core';
import { TextInteraction } from '@capgo/capacitor-textinteraction';
if (Capacitor.getPlatform() === 'ios') {
const { success } = await TextInteraction.toggle({ enabled: false });
if (!success) console.warn('Text interaction could not be changed on this device');
}
항상 명시적으로 전달하십시오. enabled explicitly. Native 측에서 누락된 값을 처리한다는 것입니다. false.
사용자가 입력하기 전에 재 활성화하십시오.
텍스트 상호 작용이 꺼져 있으면 <input>, <textarea> 그리고 contenteditable 요소는 입력을 수락하지 않습니다. 사용자가 화면에 있는 양식을 떠날 때 다시 활성화하고, 사용자가 화면을 떠날 때 다시 꺼두십시오.
import { Capacitor } from '@capacitor/core';
import { TextInteraction } from '@capgo/capacitor-textinteraction';
const isIos = Capacitor.getPlatform() === 'ios';
export async function setTextInteraction(enabled: boolean) {
if (!isIos) return false;
const { success } = await TextInteraction.toggle({ enabled });
return success;
}
// Entering a login, search or checkout screen
await setTextInteraction(true);
// Leaving it
await setTextInteraction(false);
라우터와 함께 호출하십시오. setTextInteraction(true) 입력 요소를 포함하는 경로의 enter hook에서 (예: Vue Router beforeEnter, React useEffect, 또는 Angular ionViewWillEnter) 그리고 setTextInteraction(false) 그것을 떠날 때.
플러그인 vs CSS
CSS를 사용하여 대부분의 선택을 숨길 수 있습니다:
body {
-webkit-user-select: none;
user-select: none;
-webkit-touch-callout: none;
}
input,
textarea,
[contenteditable] {
-webkit-user-select: text;
user-select: text;
}
CSS는 각 요소별로 작동하므로, 잊어버린 내용은 선택 가능하며, WebView 자체가 길이 누름을 처리하는 방식은 변하지 않습니다. 플러그인은 WebView 수준에서 작동합니다: 하나의 호출이 모든 화면, 포함된 줌 인 렌즈까지를 커버합니다. 많은 앱은 두 가지를 모두 사용합니다: 플러그인은 앱과 같은 화면에 사용하고, CSS는 텍스트 상호 작용이 화면 내에서 미세한 제어가 필요한 경우에 사용합니다.
API 참조
toggle(options)
toggle(options: { enabled: boolean }): Promise<{ success: boolean }>
Capacitor WebView의 텍스트 상호 작용을 켜거나 끕니다.
enabled:true__CAPGO_KEEP_0__ WebView의 선택, 호출, 줌 인 렌즈를 복원합니다.false__CAPGO_KEEP_0__ WebView의 선택, 호출, 줌 인 렌즈를 비활성화합니다.success:true__CAPGO_KEEP_0__ WebView가 iOS 14.5 이상이고 WebView가 사용 가능한 경우 적용된 변경이 적용된 후.false__CAPGO_KEEP_0__ WebView가 Android 또는 WebView가 사용 불가능한 경우.
getPluginVersion()
getPluginVersion(): Promise<{ version: string }>
__CAPGO_KEEP_0__ 플러그인 버전을 반환합니다. 반환: web __CAPGO_KEEP_0__ 브라우저에서.
플랫폼 동작
| 플랫폼 | 동작 |
|---|---|
| iOS 14.5+ | 설정 isTextInteractionEnabled 페이지에 WKWebView. 모든 페이지에 적용되어 다시 설정될 때까지 유지됩니다. |
| 안드로이드 | 무작위. 해결 { success: false }. CSS를 사용하여 선택을 제한해야 하는 경우. |
| 웹 | toggle 미implemented 오류를 발생시킵니다. 보호된 호출에 Capacitor.getPlatform(). |
지원
- 입력들이 작동하지 않습니다. 텍스트 상호 작용이 아직 비활성화되어 있습니다. 호출
toggle({ enabled: true })폼이 표시되기 전에 호출하세요. - 안드로이드에서는 아무런 변화도 없습니다. 기대됩니다. 플러그인은 iOS만 지원합니다.
TextInteraction.toggle is not available on web. 브라우저에서 호출하거나 데스크톱 브라우저에서 개발 중일 때 호출했습니다. 플랫폼 확인으로 감싸세요.- 선택이 앱을 다시 시작한 후에도 돌아옵니다. 각 시작 시 새로운 WebView가 생성되어 텍스트 상호 작용이 활성화됩니다. 호출
toggle({ enabled: false })관련 플러그인
privacyscreen
- iOS 앱 switcher에서 앱 콘텐츠를 숨기고 안드로이드 스크린샷을 차단합니다. iOS 앱 switcher에서 앱 콘텐츠를 숨기고 안드로이드 스크린샷을 차단합니다.
- 홈 인디케이터 iOS 홈 인디케이터를 숨겨서 몰입형 화면을 제공합니다.
- 화면 방향 화면 방향을 잠그고 읽습니다.
- 모두 보기 Capacitor 플러그인은 Capgo에서 제공합니다..
애플 스토어 리뷰 없이 변경을 배포합니다.
텍스트 상호 작용을 설정하는 것은 자바스크립트입니다. 네이티브 빌드에 플러그인을 추가한 후, __CAPGO_KEEP_0__ __CAPGO_KEEP_1__를 사용하여 어디서, 언제 실행할 수 있습니다. Capgo live update 애플 스토어 리뷰를 기다리지 않고 배포합니다.