samiasoft
یک شنبه 24 تیر 1397, 02: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 مشکلی ندارم
همانطور که میدانید متد 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 مشکلی ندارم