webview使用页面js文本选择
时间: 2023-12-04 09:03:37 浏览: 160
WebView 自定义长按选择,实现收藏 / 分享选中文本
4星 · 用户满意度95%
可以使用以下代码在 WebView 中启用文本选择:
```java
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.setLongClickable(true);
webView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
final WebView.HitTestResult result = ((WebView) v).getHitTestResult();
if (result.getType() == WebView.HitTestResult.SRC_ANCHOR_TYPE) {
// 长按链接
} else if (result.getType() == WebView.HitTestResult.IMAGE_TYPE || result.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
// 长按图片或链接
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage("选择操作");
builder.setPositiveButton("查看大图", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 查看大图
}
});
builder.setNegativeButton("保存图片", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 保存图片
}
});
builder.create().show();
} else {
// 长按文本
final String text = result.getExtra();
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage(text);
builder.setPositiveButton("复制", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("text", text);
clipboard.setPrimaryClip(clip);
}
});
builder.setNegativeButton("取消", null);
builder.create().show();
}
return true;
}
});
```
在上述代码中,我们设置了 WebView 的一些属性,使其能够加载 JavaScript、启用 DOM 存储、允许访问内容和文件、允许从文件 URL 访问和通用访问。然后,我们设置了 WebView 的长按监听器,用于处理文本、图片和链接的长按事件。对于文本,我们会弹出一个对话框,让用户选择复制或取消。
阅读全文