2015-10-21 66 views
0

以下是这是我实现的代码:的Android的WebView自动登录

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); 

但没有任何反应INFACT Web视图变成空白,显示写在其左上角的“xxx”

请帮助文本。已经搜索3〜4小时,无济于事

+0

尝试'的javascript:的document.getElementById( 'USER_ID')值= ' “+新的字符串( ”XXX“)+” ';的document.getElementById(' 密码' ).value ='“+ new String(”xxx“)+”';' –

+0

不会面临同样的问题!请帮我累了,现在通过搜索部份 – Juni

+0

尝试'的JavaScript:警报(“检查我”);',并告诉我,如果显示的警报或不 –

回答

0

最后我已经解决了这个问题。 JavaScript的,因为我的目标是SDK> = 奇巧没有被运行。

所以,为了避免您必须使用webView.evaluateJavascript(yourScript,null);对API级别19以上运行的设备的问题。

示例代码

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