我正在开发一个带有 WebView 和推送通知的 Android 应用程序。问题是,我正在显示的网站有一个登录名。
我想做的是:如果有人通过我的应用程序(WebView!)登录网站,我需要使用他输入的用户名并将其与 Android-Device-ID 一起放入我的 MySQL-Database 中。(但只是,如果他的密码是正确的..)
有人知道这样做的优雅方法吗?我被困住了。
我正在开发一个带有 WebView 和推送通知的 Android 应用程序。问题是,我正在显示的网站有一个登录名。
我想做的是:如果有人通过我的应用程序(WebView!)登录网站,我需要使用他输入的用户名并将其与 Android-Device-ID 一起放入我的 MySQL-Database 中。(但只是,如果他的密码是正确的..)
有人知道这样做的优雅方法吗?我被困住了。
我找到了解决方案。我在网站原始登录名上放置了一个警报对话框。之后,我将 Java Script Code 注入到 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 显示的 url 的字符串。