【问题标题】:Android WebVIew, click problemsAndroid WebVIew,点击问题
【发布时间】:2020-10-03 17:24:36
【问题描述】:

我想知道如何让 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;
}

【问题讨论】:

  • 您是否尝试过移除 on click lsitener?

标签: javascript android multi-device-hybrid-apps


【解决方案1】:

在设置WebViewClient 时,您必须覆盖方法shouldOverrideUrlLoading()。请从here查看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 2019-05-16
    • 2015-06-25
    • 1970-01-01
    相关资源
    最近更新 更多