在 Ionic Capacitor 应用程序中,如何在 android 中禁用长按 WebView 文本选择
In Ionic Capacitor app, How to disable long click on WebView text selection in android
我有一个使用 Svelte + 电容器制作的混合应用程序。在应用程序中,我们正在加载电子书,并在文本选择上显示自定义 context/tooltip 菜单。它在 Web 和桌面应用程序上运行良好,但在 Android 上运行不佳。 Android 显示 android 默认菜单(复制/粘贴等)。我们需要禁用默认 android 文本选择菜单。
尝试了以下代码
mWebView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
mWebView.setLongClickable(false);
为了隐藏默认的文本选择菜单,我们需要覆盖
android 动作模式的默认行为。
在MainActivity中添加这2个方法,可以隐藏Android中的默认文本选择菜单。
@Override
public void onActionModeStarted(ActionMode mode) {
if (mActionMode == null) {
mActionMode = mode;
Menu menu = mode.getMenu();
menu.clear();
}
super.onActionModeStarted(mode);
}
@Override
public void onActionModeFinished(ActionMode mode) {
mActionMode = null;
super.onActionModeFinished(mode);
}
我有一个使用 Svelte + 电容器制作的混合应用程序。在应用程序中,我们正在加载电子书,并在文本选择上显示自定义 context/tooltip 菜单。它在 Web 和桌面应用程序上运行良好,但在 Android 上运行不佳。 Android 显示 android 默认菜单(复制/粘贴等)。我们需要禁用默认 android 文本选择菜单。
尝试了以下代码
mWebView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
mWebView.setLongClickable(false);
为了隐藏默认的文本选择菜单,我们需要覆盖 android 动作模式的默认行为。
在MainActivity中添加这2个方法,可以隐藏Android中的默认文本选择菜单。
@Override
public void onActionModeStarted(ActionMode mode) {
if (mActionMode == null) {
mActionMode = mode;
Menu menu = mode.getMenu();
menu.clear();
}
super.onActionModeStarted(mode);
}
@Override
public void onActionModeFinished(ActionMode mode) {
mActionMode = null;
super.onActionModeFinished(mode);
}