首页 > 解决方案 > Android WebVIew,点击问题

问题描述

我想知道如何让 webview 在应用程序中使用 javascript。我在此页面上随处发生点击事件,但它不适用于 web 视图。它在桌面上工作没问题,但这个 webview 给我带来了问题。

这是我的代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    webView = findViewById(R.id.webView);

    webView.setWebViewClient(new WebViewClient());
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    webView.setClickable(true);
    webView.setEnabled(true);
    webView.setWebChromeClient(new WebChromeClient());
    webView.loadUrl("{my website}");
    webView.setOnClickListener( this);
}

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

@Override
public boolean onTouch(View view, MotionEvent event) {
    switch (event.getAction())
    {
        case MotionEvent.ACTION_DOWN:
            Log.d( TAG, "Action down X:" + event.getX()+ " Y:" + event.getY());
            break;

        case MotionEvent.ACTION_UP:
            Log.d( TAG, "Action up X:" + event.getX()+ " Y:" + event.getY());
            break;

        case MotionEvent.ACTION_MOVE:
            Log.d( TAG, "Action move X:" + event.getX()+ " Y:" + event.getY());
            break;

        case MotionEvent.ACTION_CANCEL:
            Log.d( TAG, "Action cancel X:" + event.getX()+ " Y:" + event.getY());
            break;
    }
    return true;
}

标签: javascriptandroidmulti-device-hybrid-apps

解决方案


shouldOverrideUrlLoading()设置时必须覆盖方法WebViewClient。请从这里检查。


推荐阅读