Java android webview重复获取html内容,直到属性出现
我已尝试在以下方面使用教程: 要获取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
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>');");
}