Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android webview重复获取html内容,直到属性出现_Java_Android_Webview - Fatal编程技术网

Java android webview重复获取html内容,直到属性出现

Java android webview重复获取html内容,直到属性出现,java,android,webview,Java,Android,Webview,我已尝试在以下方面使用教程: 要获取html元素,这是成功的,但我想在元素隐藏后获取元素属性,以下是我的代码: public void playVideo() { String address = "https://www.youtube.com/embed/7wgRAV0AuJ0"; WebView webView = findViewById(R.id.webview); WebSettings webSettings

我已尝试在以下方面使用教程:

要获取html元素,这是成功的,但我想在元素隐藏后获取元素属性,以下是我的代码:

public void playVideo()
 {
        String address = "https://www.youtube.com/embed/7wgRAV0AuJ0";

        WebView webView = findViewById(R.id.webview);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setMediaPlaybackRequiresUserGesture(false);

        webView.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");
        webView.setWebViewClient(new AutoPlayVideoWebViewClient());
        webView.loadUrl(address);
}
这是我的界面:

public class MyJavaScriptInterface {
        private Context ctx;
        private String result;

        public MyJavaScriptInterface(Context ctx){
            this.ctx = ctx;
        }

        @JavascriptInterface
        public void showHTML(String html) {

            for(int x=0;x<3;x++)
            {
             new AlertDialog.Builder(ctx,R.style.AlertDialogCustom).setTitle("HTML").setMessage(html)
                            .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
            }
        }
    }
公共类MyJavaScriptInterface{
私有上下文ctx;
私有字符串结果;
公共MyJavaScriptInterface(上下文ctx){
this.ctx=ctx;
}
@JavascriptInterface
公共void showHTML(字符串html){
对于(int x=0;x
而非

注意:我也尝试将处理程序postdelay设置为delay alertdialog,但如果不同的internet连接速度,结果完全不同

Q:如何使接口保持调用(do循环),直到类ytp微调器上的属性style=“display:none”出现

请有人帮帮我

谢谢

    public void onPageFinished(WebView view, String url) {
        this.view = view;
        this.url = url;
        super.onPageFinished(view, url);
        // mimic onClick() event on the center of the WebView
        long delta = 100;
        long downTime = SystemClock.uptimeMillis();
        float x = view.getLeft() + (view.getWidth()/2);
        float y = view.getTop() + (view.getHeight()/2);

        MotionEvent tapDownEvent = MotionEvent.obtain(downTime, downTime + delta, MotionEvent.ACTION_DOWN, x, y, 0);
        tapDownEvent.setSource(InputDevice.SOURCE_CLASS_POINTER);
        MotionEvent tapUpEvent = MotionEvent.obtain(downTime, downTime + delta + 2, MotionEvent.ACTION_UP, x, y, 0);
        tapUpEvent.setSource(InputDevice.SOURCE_CLASS_POINTER);

        view.dispatchTouchEvent(tapDownEvent);
        view.dispatchTouchEvent(tapUpEvent);

        view.loadUrl("javascript:window.HtmlViewer.showHTML" +
                "('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
    }