Android WebView Auto Sign In

Below is the code that I am implementing:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); webView = (WebView) findViewById(R.id.webTask); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webSettings.setSaveFormData(false); if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); else webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); webView.loadUrl("javascript:document.getElementById('user_id').value='" + new String ("xxx")+ "';javascript:document.getElementById('password').value = '" + new String("xxx") + "';"); } }); webView.loadUrl(URL); 

But nothing happens. infact web view becomes empty and shows the text written in the left corner of "xxx"

Please, help. already searched from 3 to 4 hours and to no avail

0
source share
1 answer

Finally, I solved the problem. javascript did not start because my target sdk was> = KITKAT .

So, to avoid this problem, you should use webView.evaluateJavascript(yourScript,null); For devices running API level 19 or higher.

Code example

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { webView.evaluateJavascript(yourScript,null); } else { webView.loadUrl(yourScript); } 
0
source

Source: https://habr.com/ru/post/1392207/


All Articles