在应用程序中实现“复制链接文本”功能

时间:2014-06-12 10:24:31

标签: android google-chrome android-webview

我有Android WebView,显示搜索结果。使用 contextMenu 和WebView HitTestResult ,我已成功实现了打开,保存,复制链接网址等选项列表。
现在,我想实现<强大的>复制链接文字功能,因为它存在于Google Chrome中,它应该只复制链接文本(标题)。默认Android浏览器中存在类似(不精确)的功能,如#34;选择文本&#34;选项。
我不想要使用剪贴板复制文本的代码而不是我的主要座右铭是确定检索链接标题的方式。
链接网址可以使用 HitTestResult getExtra()方法检索同样有什么方法可以检索链接文本(标题)?
我已经提到How to get loaded web page title in Android WebView?,但是在加载网页后它没有按下链接时给出标题。

2 个答案:

答案 0 :(得分:3)

不幸的是,您发布的链接是获​​取网页标题的最快方式(您可以参考the second answer,这可能更快)。

这背后的原因是在您阅读页面标题之前需要加载网站。 onReceivedTitle()(链接的第二个答案)的优点是它不会等到整个页面加载完毕。它等待直到加载足够的文件以从文档中检索标题。它还会在每次页面标题发生更改时通知您(由于JavaScript或其他原因)。

<小时/> 修改
chrome对复制链接文本的作用是复制链接文本,如下所示:

<a href="linkUrl">Linktext</a>

这很难通过webview实现,因为您需要访问网页的html内容。有一些解决方法(见here)。

两个API(selectTextcopySelection)是待审批API审核,它们可以帮助您完成此操作,但目前无法使用

无法使用明确的官方方式。

答案 1 :(得分:0)

复制文本试试这个: -

if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {
                android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                clipboard.setText(mPostCode);
                Toast.makeText(getApplicationContext(), "Your code is copied.", Toast.LENGTH_SHORT).show();
            } else {
                android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", mPostCode);
                        clipboard.setPrimaryClip(clip);
            }