Skip to main content
@capgo/capacitor-textinteraction UI & 시스템 오픈 소스

텍스트 상호 작용 Capacitor 플러그인

Capacitor WebView에서 사용자가 입력할 때까지 텍스트 선택과 iOS 확대 렌즈를 끄고, 다시 켜는 것을 앱이 원활하게 작동할 때 사용하세요.

  • iOS · 지원 (iOS 14.5+)
  • 안드로이드 · 지원하지 않음 (resolves success: false)
  • Web · 지원되지 않음 (throws unimplemented)

설치

bun add @capgo/capacitor-textinteraction bunx cap sync
npm, pnpm 또는 yarn
  • npm install @capgo/capacitor-textinteraction
  • pnpm add @capgo/capacitor-textinteraction
  • yarn add @capgo/capacitor-textinteraction

사용 방법

Capacitor에서 장치 테스트

__CAPGO_KEEP_0__ 앱을 다운로드한 후 QR __CAPGO_KEEP_1__를 스캔하세요.

다운로드하여 Capgo 앱을 설치한 후 QR code 코드를 스캔하세요.

텍스트 상호 작용 플러그인 미리보기 QR code

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 }) 관련 플러그인

애플 스토어 리뷰 없이 변경을 배포합니다.

텍스트 상호 작용을 설정하는 것은 자바스크립트입니다. 네이티브 빌드에 플러그인을 추가한 후, __CAPGO_KEEP_0__ __CAPGO_KEEP_1__를 사용하여 어디서, 언제 실행할 수 있습니다. Capgo live update 애플 스토어 리뷰를 기다리지 않고 배포합니다.

전체 참조

FAQ

텍스트 상호 작용 플러그인 FAQ

How do I disable text selection in a Capacitor iOS app?

@capgo/capacitor-textinteraction을 설치하고 bunx cap sync를 실행한 후 TextInteraction.toggle({ enabled: false })를 호출하면 됩니다. 플러그인은 WKWebView에서 isTextInteractionEnabled을 false로 설정하여 iOS에서 텍스트 선택과 확대鏡을 비활성화합니다.

CSS user-select: none이 iOS에서 충분하지 않은 이유는 무엇인가?

페이지 콘텐츠에서 사용자 선택과 -webkit-touch-callout을 중단하지만 WKWebView는 여전히 장시간 누르면 확대 렌즈와 선택 동작을 보여주고, 스타일링을忘은 모든 요소가 선택 가능합니다. 이 플러그인은 WebView 수준에서 텍스트 상호 작용을 끕니다. 따라서 하나의 호출로 모든 화면을 커버할 수 있습니다.

사용자는 텍스트 상호 작용이 비활성화된 상태에서 입력을 입력할 수 있나요?

아니요. 텍스트 상호 작용이 비활성화된 상태에서는 텍스트 입력 필드, 텍스트 영역, contenteditable 요소가 작동하지 않습니다. 사용자가 화면을 떠날 때까지 텍스트 상호 작용을 다시 활성화하세요.

이 플러그인은 안드로이드나 웹에서 작동하나요?

아니요. 텍스트 상호 작용을 켜거나 끄는 기능은 iOS만 지원합니다. 안드로이드에서는 호출이 성공을 반환하지만 아무런 효과가 없습니다. 웹에서는 호출이 실패하여 Capacitor.getPlatform() === &quot;ios&quot;과 같은 조건문으로 보호해야 합니다.

iOS와 Capacitor의 어떤 버전이 지원되나요?

자연 API은 iOS 14.5 이상을 필요로 합니다. 플러그인 메이저 버전은 Capacitor을 따라서 사용하세요. 예를 들어, 플러그인 v8은 Capacitor 8, 플러그인 v7은 Capacitor 7을 필요로 합니다.

설정은 앱이 재시작된 후에도 유지되나요?

설정은 WebView 구성에 저장되므로 페이지 탐색 중에도 유지됩니다. 그러나 새 앱 실행은 새로운 WebView를 생성하여 텍스트 상호 작용을 활성화합니다. 따라서 기본적으로 비활성화하고 싶다면 앱이 시작될 때 다시 toggle를 호출하세요.

텍스트 인터랙션 플러그인을 Capacitor 앱에 설치하는 방법은 무엇입니까?

Run &quot;bun add @capgo/capacitor-textinteraction&quot; (or &quot;npm install @capgo/capacitor-textinteraction&quot;), then run &quot;bunx cap sync&quot; so the iOS and Android projects pick up the native code. Import it from &quot;@capgo/capacitor-textinteraction&quot; in your app code.

리액트, 뷰, 앵귤러와 함께 @capgo/capacitor-textinteraction이 작동합니까?

Yes. Text Interaction is a Capacitor package, so it works with any web framework that runs inside Capacitor, including Ionic, React, Vue, Angular, Svelte and plain JavaScript.

Which Capacitor version does @capgo/capacitor-textinteraction support?

Capgo plugins follow Capacitor&#39;s major version: use the plugin major version that matches your Capacitor major version (for example plugin v8 with Capacitor 8). The compatibility table in the GitHub README lists the maintained versions.

Is @capgo/capacitor-textinteraction free and open source?

Yes. The source code is public on GitHub at https://github.com/Cap-go/capacitor-textinteraction/ and the package is free to install from npm. Bug reports and pull requests are welcome.

애플 스토어 리뷰 없이 텍스트 인터랙션을 사용하는 code를 업데이트 할 수 있나요?

Installing or upgrading the plugin changes native code, so it needs a new store build. After that, JavaScript, HTML and CSS changes that call the plugin can ship instantly with Capgo live updates.

앱 리뷰 기다리지 않고 텍스트 상호 작용 변경을 배포하세요.

플러그인을 스토어 빌드에 추가한 후 Capgo 라이브 업데이트 통해 사용자에게 몇 분 내에 자바스크립트, HTML 및 CSS 변경을 푸시합니다.

시작하세요 Capgo