如何使Android Webview记住用户名和密码?

如何使Android Webview记住用户名和密码?,第1张

概述这里是AndroidStudio中的代码.我还添加了AndroidStudio代码下方的html代码,使用javascript记住cookie中的用户名和密码.它仅适用于某些Android设备.我不知道为什么我想使其适用于所有android设备.希望这将是一种简单的方法.请帮助.我希望用户一次输入用户名/密码,下次访问时应填

这里是Android Studio中的代码.我还添加了AndroID Studio代码下方的HTML代码,使用JavaScript记住cookie中的用户名和密码.它仅适用于某些AndroID设备.我不知道为什么我想使其适用于所有androID设备.
希望这将是一种简单的方法.请帮助.
我希望用户一次输入用户名/密码,下次访问时应填写该用户名/密码.

public class MainActivity extends AppCompatActivity {    private Toolbar toolbar;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        toolbar = (Toolbar) findVIEwByID(R.ID.app_bar);        setSupportActionbar(toolbar);        getSupportActionbar().setTitle("Go To Our Facebook Page");        WebVIEw myWebVIEw = (WebVIEw) findVIEwByID(R.ID.webvIEw);        myWebVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt());        WebSettings webSettings = myWebVIEw.getSettings();        webSettings.setJavaScriptEnabled(true);        myWebVIEw.loadUrl("http://www.hksalonjob.comslogin.PHP");    }

这里带有HTML代码,使用JavaScript记住用户名和密码.

    <!DOCTYPE HTML>    <HTML>        <head>            <Title>Salon Job HK</Title>            <Meta http-equiv="content-type" content="text/HTML; charset=utf-8" />            <Meta name="description" content="" />            <Meta name="keywords" content="" />            <!--[if lte IE 8]><script src="CSS/IE/HTML5shiv.Js"></script><![endif]-->            <script src="Js/jquery.min.Js"></script>            <script src="Js/jquery.scrolly.min.Js"></script>            <script src="Js/jquery.dropotron.min.Js"></script>            <script src="Js/jquery.scrollex.min.Js"></script>            <script src="Js/skel.min.Js"></script>            <script src="Js/skel-layers.min.Js"></script>            <script src="Js/init.Js"></script>            <script src="http://code.jquery.com/jquery-1.9.1.Js"></script>            <noscript>                <link rel="stylesheet" href="CSS/skel.CSS" />                <link rel="stylesheet" href="CSS/style.CSS" />                <link rel="stylesheet" href="CSS/style-xlarge.CSS" />            </noscript>            <!--[if lte IE 9]><link rel="stylesheet" href="CSS/IE/v9.CSS" /><![endif]-->            <!--[if lte IE 8]><link rel="stylesheet" href="CSS/IE/v8.CSS" /><![endif]-->        </head>        <body>            <!-- header -->            <!-- Main -->        <div ID="main" >        <div >          <form ACTION="<?PHP echo $loginFormAction; ?>" name="form1" method="POST">                                        <div >                                          <input type="tel" name="tel" required ID="tel"  pattern="[0-9]{1}[0-9]{7}"  maxlength="8" value="" placeholder="phone number"/>                                        </div>                                        <br>                                        <div >                                          <input type="password" name="spassword" required ID="spassword"  maxlength="8" placeholder="" />                                        </div>                                        <br>                                        <div >                                        <input type="checkBox" name="sremember" ID="sremember" />                                        <label for="sremember">Remember me</label>                                        </div>                          <input Type="submit"  name="Login" ID="Login" value="login">            </form>              <script>            //remember username and password                        $(function() {                            if (localstorage.chkbx && localstorage.chkbx != '') {                                $('#sremember').attr('checked', 'checked');                                $('#tel').val(localstorage.tel);                                $('#spassword').val(localstorage.spassword);                            } else {                                $('#sremember').removeAttr('checked');                                $('#tel').val('');                                $('#spassword').val('');                            }                            $('#sremember').click(function() {                                if ($('#sremember').is(':checked')) {                                    // save username and password                                    localstorage.tel = $('#tel').val();                                    localstorage.spassword = $('#spassword').val();                                    localstorage.chkbx = $('#sremember').val();                                } else {                                    localstorage.tel = '';                                    localstorage.spassword = '';                                    localstorage.chkbx = '';                                }                            });                        });            </script>        </div>        </div>    </body>    </HTML>

解决方法:

请检查网络视图是否存储cookie,例如像这样:

@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    toolbar = (Toolbar) findVIEwByID(R.ID.app_bar);    setSupportActionbar(toolbar);    getSupportActionbar().setTitle("Go To Our Facebook Page");    //not sure if you need this    cookieSyncManager.createInstance(this;    //it is default true, but hey...     cookieManager.getInstance().setAcceptcookie(true);    WebVIEw myWebVIEw = (WebVIEw) findVIEwByID(R.ID.webvIEw);    myWebVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt() {    @OverrIDe    public voID onPageFinished(WebVIEw vIEw, String url) {        //Do you have cookies?        Log.d("cookie", "url: " + url + ", cookies: " + cookieManager.getInstance().getcookie(url));     }    });    WebSettings webSettings = myWebVIEw.getSettings();    webSettings.setJavaScriptEnabled(true);    myWebVIEw.loadUrl("http://www.hksalonjob.comslogin.PHP");}

编辑:好的,忘记上面的行:-)

请注意,我在这里写的内容在安全感知方面不是好的做法.
我只向您展示其基本工作原理(完全未经测试).

您可以使用JavaScriptInterface在Java和JavaScript之间交换数据:

在Java中:

 @OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    toolbar = (Toolbar) findVIEwByID(R.ID.app_bar);    setSupportActionbar(toolbar);    getSupportActionbar().setTitle("Go To Our Facebook Page");    WebVIEw myWebVIEw = (WebVIEw) findVIEwByID(R.ID.webvIEw);    myWebVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt() {    @OverrIDe    public voID onPageFinished(WebVIEw vIEw, String url) {        //Is the url the login-page?        if (url.equals ("http://www.hksalonjob.comslogin.PHP") == true) {             //load JavaScript to set the values to input fIElds             SharedPreferences prefs = getPreferences(MODE_PRIVATE);              String usr= prefs.getString("usr", null);             String pwd= prefs.getString("pwd", null);             if (usr== null || pwd == null) {                 //we  have no values - leave input fIElds blank                 return;             }             vIEw.loadUrl("JavaScript:fillValues(" + usr + "," + pwd + ");");        }     }    });    myWebVIEw.addJavaScriptInterface(new JavaScriptInterface(), "AndroID");    WebSettings webSettings = myWebVIEw.getSettings();    webSettings.setJavaScriptEnabled(true);    myWebVIEw.loadUrl("http://www.hksalonjob.comslogin.PHP");}private class JavaScriptInterface {    /**    * this should be triggered when user and pwd is correct, maybe after    * successful login    */    public voID saveValues (String usr, String pwd) {      if (usr == null || pwd == null) {           return;      }      //save the values in SharedPrefs      SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();      editor.putString("usr", usr);      editor.putString("pwd", pwd);      editor.apply();    } }

用JavaScript:

//trigger this after successful loginfunction afterSuccessLogin(usr, pwd) {    if (AndroID != undefined) {        if (AndroID.saveValues != undefined) {            AndroID.saveValues(usr, pwd);          }    }       }// this will be triggered by webvIEw function fillValues(usr, pwd) {    //fill input fIElds with values       }
总结

以上是内存溢出为你收集整理的如何使Android Webview记住用户名和密码?全部内容,希望文章能够帮你解决如何使Android Webview记住用户名和密码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1089684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存