PDA

View Full Version : مشکل evaluateJavascript در API های پایینتر از 19 در وب ویو



samiasoft
یک شنبه 24 تیر 1397, 01:25 صبح
سلام دوستان

همانطور که میدانید متد evaluateJavascript در API های 19 و بالاتر وجود دارد.

حالا بدین منظور من برای اندروید های پایینتر اومدم چنین نوشتم :


webview1.getSettings().setJavaScriptEnabled(true);
webview1.getSettings().setDomStorageEnabled(true);

webview1.addJavascriptInterface(new JsClass(this),"HtmlViewer");

webview1.setWebViewClient(new WebViewClient(){

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

if(Build.VERSION.SDK_INT >=19){

}
else
{


webview1.loadUrl("javascript:window.HtmlViewer.get(document.getEleme ntsByTagName('html')[0].innerHTML);");

}
}

@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}

});

webview1.loadUrl("");


و کلاس زیر رو هم براش تعریف کردم

اما متاسفانه انگار دستوراتم به درستی اجرا نمیشوند !

class JsClass{ Context context;

JsClass(Context c){
this.context=c;

}

public void get(String html){

String result= Html.fromHtml(html).toString();

final String[] s = result.split(",");

if(s[0].equals("null")){

Toast.makeText(context,"مقادیر ارسالی خالی می باشد!", Toast.LENGTH_SHORT).show();
finish();

}

}
}

ناگفته نماند با API های بالاتر از 19 مشکلی ندارم