Как предотвратить копирование в буфер обмена в TextInput реагировать на Android? - PullRequest
0 голосов
/ 25 марта 2019

Я хочу запретить пользователю копировать контент в TextInput, но он работает только на iOS, но не на Android. Как я могу сделать это в Android?

[Обновление]: Поскольку ссылка @ patel-dhara приведена ниже, я уже прочитал коммит о свойстве contextMenuHidden и обнаружил, что обрабатывает только событие onLongClick на андроид. Таким образом, вы можете copy to clipboard на TextInput, дважды нажав на него.

Вот мой код:

<TextInput
  style={styles.input}
  placeholder="Password"
  placeholderTextColor="rgba(255, 255, 255, 0.7)"
  underlineColorAndroid="transparent"
  secureTextEntry={isHidePass}
  returnKeyType="go"
  autoCapitalize="none"
  onChangeText={this.handleTextChange}
  onSubmitEditing={this.handleLogin}
  ref={this.passwordRef}
  contextMenuHidden
  onBlur={() => Clipboard.setString('')}
  onFocus={() => Clipboard.setString('')}
  onSelectionChange={() => Clipboard.setString('')}
/>

Ответы [ 3 ]

0 голосов
/ 25 марта 2019

Попробуйте это:

<TextInput caretHidden={true} selectTextOnFocus={false} />
0 голосов
/ 27 марта 2019

используйте это:

<View pointerEvents="none">
  <TextInput ... />
</View>

Оформление указателя событий для просмотра: https://facebook.github.io/react-native/docs/view#pointerevents

Другой вариант: Попробуйте очистить буфер обмена

<TextInput onFocus={() => Clipboard.setString('')} onSelectionChange={() => Clipboard.setString('')}/>
0 голосов
/ 25 марта 2019

вы можете использовать contextMenuHidden свойство TextInput. Он будет работать как на платформе Android, так и на iOS.

<TextInput contextMenuHidden={true} />

но, возможно, будет поддерживаться после версии 0.55 собственного кода. для получения дополнительной информации ссылка . ссылка для фиксации: ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...