Android 如何检测HTML页面上的按钮点击

Android 如何检测HTML页面上的按钮点击,android,android-webview,Android,Android Webview,有人能告诉我如何检测html页面上的点击事件吗 我有一个android应用程序。在那个应用程序中,我加载了一个第三方网站。 在那个网站上有一些打印按钮。但当我触摸打印按钮时 什么也没发生。所以我只想知道,怎样才能检测到按钮的点击 在网页上执行打印作业 这是我的主要活动 package com.example.re; public class MainActivity extends AppCompatActivity { public WebView webView; pri

有人能告诉我如何检测html页面上的点击事件吗 我有一个android应用程序。在那个应用程序中,我加载了一个第三方网站。 在那个网站上有一些打印按钮。但当我触摸打印按钮时 什么也没发生。所以我只想知道,怎样才能检测到按钮的点击 在网页上执行打印作业

这是我的主要活动

package com.example.re;

public class MainActivity extends AppCompatActivity {
    public WebView webView;

    private WebView mWebView;





    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView)findViewById(R.id.web);

        webView.setWebViewClient(new overload());
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError error) {
                handler.proceed();
            }
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favion){
                super.onPageStarted(view,url,favion);

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

                //show webview
                findViewById(R.id.web).setVisibility(View.VISIBLE);




            }
        });
        webView.loadUrl(url);
        // webView.loadUrl("https://192.168.0.186:8443/");//wifi
        // webView.loadUrl("https://192.168.1.6:8443/");//Ethernet
        webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
        WebSettings webSettings = webView.getSettings();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            webSettings.setAllowUniversalAccessFromFileURLs(true);
        }
        webSettings.setAllowFileAccessFromFileURLs(true);
        webSettings.setJavaScriptEnabled(true);
        webView.setLongClickable(true);
        webSettings.setLoadWithOverviewMode(true);




   }


    public class overload extends WebViewClient{
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }


    /**--------------------------------------------print--------------------------------------------------**/
    private void doWebViewPrint() {
    // Create a WebView object specifically for printing
    WebView webView = new WebView(MainActivity.this);
    webView.setWebViewClient(new WebViewClient() {

    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    return false;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
    Log.i(TAG, "page finished loading " + url);
    createWebPrintJob(view);
    mWebView = null;
    }
    });

    // Generate an HTML document on the fly:
    String htmlDocument = "<html><body><h1>Test Content</h1><p>Testing, " +
    "testing, testing...</p></body></html>";
    webView.loadDataWithBaseURL(null, htmlDocument, "text/HTML", "UTF-8", null);

    // Keep a reference to WebView object until you pass the PrintDocumentAdapter
    // to the PrintManager
    mWebView = webView;
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private void createWebPrintJob(WebView webView) {

        // Get a PrintManager instance
        PrintManager printManager = (PrintManager) MainActivity.this
                .getSystemService(Context.PRINT_SERVICE);

        String jobName = getString(R.string.app_name) + " Document";

        // Get a print adapter instance
        PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter(jobName);

        // Create a print job with name and adapter instance
        PrintJob printJob = printManager.print(jobName, printAdapter,
                new PrintAttributes.Builder().build());

        // Save the job object for later status checking

        ArrayList<PrintJob> printJobs = new ArrayList<PrintJob>();

        printJobs.add(printJob);
    }

    /**--------------------------------------------print--------------------------------------------------**/






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

            new AlertDialog.Builder(MainActivity.this, R.style.AlertDialogStyle)
                    .setMessage("Are you sure you want to exit?")
                    .setCancelable(false)
                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            MainActivity.this.finish();
                        }
                    })
                    .setNegativeButton("No", null)
                    .show();
            // super.onBackPressed();
        }
    }



}
package com.example.re;
公共类MainActivity扩展了AppCompatActivity{
公共网络视图;
私有网络视图;
@TargetApi(Build.VERSION\u code.LOLLIPOP)
@RequiresApi(api=Build.VERSION\u CODES.JELLY\u BEAN)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView=(webView)findviewbyd(R.id.web);
setWebViewClient(新重载());
setWebViewClient(新的WebViewClient(){
@凌驾
ReceivedSlerRor上的公共无效(最终Web视图视图、最终SslErrorHandler、最终SslError错误){
handler.procedure();
}
@凌驾
公共void onPageStarted(WebView视图、字符串url、位图favion){
super.onPageStarted(视图、url、favion);
}
@凌驾
公共void onPageFinished(最终WebView视图,字符串url){
//显示网络视图
findviewbyd(R.id.web).setVisibility(View.VISIBLE);
}
});
loadUrl(url);
//webView.loadUrl(“https://192.168.0.186:8443/“”;//无线
//webView.loadUrl(“https://192.168.1.6:8443/“”;//以太网
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
WebSettings WebSettings=webView.getSettings();
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.JELLY\u BEAN){
setAllowUniversalAccessFromFileURL(true);
}
setAllowFileAccessFromFileURLs(true);
setJavaScriptEnabled(true);
webView.setLongClickable(真);
webSettings.SetLoadWithOverview模式(true);
}
公共类重载扩展了WebViewClient{
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
view.loadUrl(url);
返回true;
}
}
/**--------------------------------------------印刷品--------------------------------------------------**/
私有无效doWebViewPrint(){
//创建专门用于打印的WebView对象
WebView WebView=新的WebView(MainActivity.this);
setWebViewClient(新的WebViewClient(){
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
返回false;
}
@凌驾
公共void onPageFinished(WebView视图,字符串url){
Log.i(标签,“页面加载完成”+url);
createWebPrintJob(视图);
mWebView=null;
}
});
//动态生成HTML文档:
字符串htmlDocument=“测试内容测试,”+
“测试,测试…

”; loadDataWithBaseURL(null,htmlDocument,“text/HTML”,“UTF-8”,null); //在通过PrintDocumentAdapter之前,保留对WebView对象的引用 //给PrintManager mWebView=webView; } @TargetApi(Build.VERSION\u code.LOLLIPOP) 私有void createWebPrintJob(WebView WebView){ //获取PrintManager实例 PrintManager PrintManager=(PrintManager)MainActivity.this .getSystemService(Context.PRINT_服务); String jobName=getString(R.String.app_name)+“Document”; //获取打印适配器实例 PrintDocumentAdapter printAdapter=webView.createPrintDocumentAdapter(作业名); //使用名称和适配器实例创建打印作业 PrintJob PrintJob=printManager.print(作业名、打印适配器、, 新的printtributes.Builder().build()); //保存作业对象以备以后进行状态检查 ArrayList printJobs=新的ArrayList(); printJobs.add(printJob); } /**--------------------------------------------印刷品--------------------------------------------------**/ @凌驾 public void onBackPressed() { if(webView.canGoBack()){webView.goBack();} 否则{ 新建AlertDialog.Builder(MainActivity.this,R.style.AlertDialogStyle) .setMessage(“您确定要退出吗?”) .setCancelable(错误) .setPositiveButton(“是”,新的DialogInterface.OnClickListener(){ public void onClick(DialogInterface对话框,int-id){ MainActivity.this.finish(); } }) .setNegativeButton(“否”,null) .show(); //super.onBackPressed(); } } }
HTML页面的源代码是否受您的控制?