将gmail用户ID和密码传递给Android中的webView

时间:2015-04-29 10:25:06

标签: android webview

如何将gmail用户ID和密码传递给webView以便在Gmail中登录?

2 个答案:

答案 0 :(得分:1)

我想补充说,加载html时应该完成javascript函数的加载。要控制它,您可以使用以下内容:

webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/test.html");

webview.setWebViewClient(new WebViewClient(){

    public void onPageFinished(WebView view, String url){   

         webview.loadUrl("javascript:init('" + theArgumentYouWantToPass + "')");
    }           
});

的test.html

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>

<body>
hola
adios
</body>

<script type="text/javascript">

    function init(val){
    // Do whatever you want with your parameter val
    }
</script>
</html>

答案 1 :(得分:0)

对于Gmail,由于几个月前gmail转到了https,因此没有简单的方法。使用HTTPS连接时,WebView无法本机处理基本身份验证。

不要难过,有一个解决方法。您可以使用webview的loadUrl函数:

   Bundle extras = getIntent().getExtras();            
  mUsrName = extras != null ? extras.getString("username") : null;
  mPassC = extras != null ? extras.getString("passcode") : null;

  mWebView = (WebView) findViewById(R.id.webview);
  mWebView.getSettings().setJavaScriptEnabled(true); 

  mWebView.setWebViewClient(new WebViewClient() {
      @Override  
      public void onReceivedHttpAuthRequest(WebView view,
                                            HttpAuthHandler handler,
                                            String host,
                                            String realm){ 
        handler.proceed(mUsrName, mPassC);
      }  

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

  String up = mUserName +":" +mPassC;
  String authEncoded = new String(Base64.encodeBase64(up.getBytes()));
  String authHeader = "Basic " +authEncoded;
  Map<String, String> headers = new HashMap<String, String>();
  headers.put("Authorization", authHeader);
  mWebView.loadUrl("https://myhost.com/secured_area", headers);
礼貌:Set credentials on an Android Webview using secured HTTPS connection