android如何在webview中显示PopupMenu,就像GMail一样

nAk*_*dov 5 javascript html5 android popupmenu webview

我想在我的应用程序中像GMail一样在webview中显示PopupMenu.

在此输入图像描述

这是我的代码:

webView.addJavascriptInterface(new WebAppInterface(getActivity()), "ScriptToAndroid");

<div class="moreover_icon" onclick="showPopup('file_attach_path', event)">
    <img class="overflow_icon" src="android_moreover_icon"/>
</div>

<script type="text/javascript">

    function showPopup(file_path, event) {
        ScriptToAndroid.showPopupDialog(file_path, pos_x, pos_y);
    }
</script>

@JavascriptInterface
public void showPopupDialog(String filePath, int x, int y) {
    //show PopupMenu
}
Run Code Online (Sandbox Code Playgroud)

rah*_*lrv 0

使用 WebViewClient

mWebView = (WebView) findViewById(R.id.webView);
mWebView.setWebViewClient(new WebClient(this));
Run Code Online (Sandbox Code Playgroud)

拦截shouldOverrideUrlLoading()

public class WebClient extends WebViewClient {

    MainActivity mainActivity;
    public WebClient(MainActivity activity) {
        mainActivity = activity;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.contains("xxx")) {
            Log.i("show pop", "xx");
        }
        return false;
    }

    @Override
    public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
        return super.shouldOverrideKeyEvent(view, event);
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public void onPageFinished(WebView view, String url) {

    }


}
Run Code Online (Sandbox Code Playgroud)