Android WebView Push为DeviceID分配名称

时间:2014-11-25 08:25:16

标签: android login webview push personalization

我正在使用WebView和Push通知开发Android应用程序。 问题是,我正在显示的网站有登录信息。

我想做的是: 如果有人通过我的应用程序(WebView!)登录网站,我需要使用他输入的用户名并将其放入带有Android-Device-ID的MySQL数据库中。 (但只是,如果他的密码是正确的..)

有人知道这样做的优雅方式吗?我被卡住了。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我在网站原始登录上放了一个alertdialog。 在此之后,我将Java脚本代码注入到URL中,该URL填写了网站上的表单,然后自动提交。 如果有人有兴趣,我就是这样做的:

登录

的AlertDialog
    private void logIn() {
        LayoutInflater factory = LayoutInflater.from(this);
        final View textEntryView = factory.inflate(R.layout.activity_login, null);
        final EditText username = (EditText) textEntryView.findViewById(R.id.username);
        final EditText password = (EditText) textEntryView.findViewById(R.id.password);
        username.setText("", TextView.BufferType.EDITABLE);
        password.setText("", TextView.BufferType.EDITABLE);
        final AlertDialog.Builder alert = new AlertDialog.Builder(this);

        alert.setTitle(Html.fromHtml("<font color='#ffffff'>Login</font>"));
        alert.setView(textEntryView);
        alert.setPositiveButton("Login",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        User = username.getText().toString();
                        Pw = password.getText().toString();
                        autoFillIn();
                    }
                });
        alert.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                                        int whichButton) {
                    }
                });
        alert.show();
}

然后 autoFillIn

    public void autoFillIn(){
        mWebview.getSettings().setJavaScriptEnabled(true);
        mWebview.setWebViewClient(new WebViewClient() {
        public void onPageFinished(WebView view, String url) {
            view.loadUrl("javascript:document.getElementById('LoginForm_username').value = '" + User + "';document.getElementById('LoginForm_password').value='" + Pw + "';document.forms[0].submit();");
        }
    });
    mWebview .loadUrl(frontendurl);
    setContentView(mWebview);

}

希望这可能对某人有所帮助。 而且我总是愿意接受更好的想法。

编辑: “frontendurl”是一个字符串,其中包含我想通过webview显示的网址。