【发布时间】:2020-04-27 12:24:29
【问题描述】:
我有一个网络视图,当用户长按链接时,我想获取 URL。我知道我可以做到:
// Register the context menu for web view
registerForContextMenu(webView);
还有:
@Override
public void onCreateContextMenu(@NonNull ContextMenu menu, @NonNull View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
final WebView.HitTestResult result = webView.getHitTestResult();
Log.i("url is ===" , "result.getExtra()")
}
但这样一来,在一些搜索引擎如 Google 中,不会返回 URL。这是我长按google搜索结果时的日志:
数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8 / 9hAAAA + klEQVR4AWMgBnwr4pRloAR8KuA89KmAK4V8A / LZ1YGGvPiQy65MtCaQjR8LuDxh / M8FXNlAQ078D2VgJs6APE6rjwWcj4CaOkGaIIZybPucz1FHvCuyeYVBmkBhAArIL6XcEiCvfCzkNMOpCeRPoPMXgFyACAPOcnAYFLK7fSrkDAR6rQmnAe / KBfmBNhQCDbkGtP0yyO8gsU + FHLYgL4EClGgvgDR9zudcCrT9PchVX4q49YmKc5AmkLNBsQDyOygsQK4iygCQoo8FHLGg0AcFIDQm3gPpvXg1zlu88j ++ 2ACFPB51CAmgbf9xYcIGEAAEDSAWM1ATAAC4CbdSzzGZLwAAAABJRU5ErkJggg == P>
我从 GitHub 下载了一个 web browser 开源。在这个项目中,程序员这样做并且这是有效的:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// Get link-URL.
String url = (String) msg.getData().get("url");
Log.i("get url" , url);
}
};
所以我在我的应用程序中编写了这段代码,但是 handleMessage 不能运行。使用 handleMessage 方法是否需要做其他事情?
您知道在 google 搜索结果中获取 URL 的另一种方法吗?
【问题讨论】:
-
我和你有同样的问题,但没有人回答这个问题。