Webview上的文本选择菜单

4
我一直在尝试自定义Webview中的上下文菜单,该菜单在选择Webview中的文本时出现。
基本上,我想要添加或删除菜单项。并在项目单击时添加一些自定义事件。
我已经尝试了以下链接提供的几个解决方案,但都没有成功。最终只得到了一个对话框菜单。

https://developer.android.com/guide/topics/ui/menus.html#CAB

enter image description here


1
可能是重复的问题?https://stackoverflow.com/questions/23737510/webview-add-menu-item-to-textselection-menu - ozbek
1个回答

0
经过多次尝试和错误,我终于找到了一个合理的解决方案。在这里发布出来,以便完整性考虑,以防其他人遇到类似的问题。
解决方案是创建一个备用菜单,我使用PopupWindow实现了它。并且,我使用GestureDetector在长按事件上调用了它。
myWebView.setWebChromeClient(new MyWebChromeClient());
mGestureDetector = new GestureDetector(getActivity(), new CustomGestureListener());
mGestureDetector = new GestureListener(getActivity(),myWebView);
final GestureDetector gd = new GestureDetector(getActivity(), mGestureDetector);

    //====== web-view popup menu
    myWebView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            gd.onTouchEvent(motionEvent);

            return false;
        }
    });

手势监听器非常基础,代码可以在这里找到。

与 web-view 数据的其余交互使用 JavaScript 完成,使用以下代码,更多信息可以在Google 开发指南中找到。

WebView xview = (WebView)view;
xview.loadUrl("javascript:alert(showAndroidToast('underline'))");

这对我来说已经解决了问题,结果可以在下面的图片中看到,希望能帮助到别人。

或者除非有更好的解决方案/代码。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接