Android 字符串到 WebView Javascript
Android String to WebView with Javascript
我正在尝试将 Intent 数据获取到已加载的 WebView。
在意图之前,有一个 EditText,我最初使用这些值登录到 myURL 网站,其中 Activity 有 userID 和 userPW(在网站上)的 WebView。
但为了更好的设计,我将 Webview 移动到另一个 activity 并发送 ID,PW 和 Bundle。
问题是字符串变量电子邮件和密码似乎设置得很好,但是当我尝试使用我以前使用的相同代码时,它不能正常工作。
Android 中有没有规定我不能在没有用户输入的情况下直接传递变量?
有人知道如何解决这个问题吗?
下面是我目前卡住的代码
public class MyWeb extends Activity{
WebView webview;
String email;
String password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(activity_myweb);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
email = bundle.getString("ID");
password = bundle.getString("PW");
webview = (WebView)findViewById(R.id.logIn);
webview.setWebViewClient(new WebClient());
webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("myURL");
login(email, password);
}
private void login(String id, String pw){
webview.loadUrl("javascript: {" +
"document.getElementById('userID').value = '"+email +"';" +
"document.getElementById('userPW').value = '"+password+"';" +
"var a = document.getElementsByTagName('input');" +
"a[2].CheckSubmit(); };");
webview.loadUrl("javascript:CheckSubmit()");
}
webview.setWebViewClient(new WebClient() {
@Override
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript: {" +
"document.getElementById('userID').value = '" + email + "';" +
"document.getElementById('userPW').value = '" + password + "';" +
"var a = document.getElementsByTagName('input');" +
"a[2].CheckSubmit(); };");
webview.loadUrl("javascript:CheckSubmit()");
}
});
已解决,我猜是因为在网页加载之前调用了 JS,认为在此之前的 Activity 在我输入字段时加载了所有页面
我正在尝试将 Intent 数据获取到已加载的 WebView。
在意图之前,有一个 EditText,我最初使用这些值登录到 myURL 网站,其中 Activity 有 userID 和 userPW(在网站上)的 WebView。
但为了更好的设计,我将 Webview 移动到另一个 activity 并发送 ID,PW 和 Bundle。
问题是字符串变量电子邮件和密码似乎设置得很好,但是当我尝试使用我以前使用的相同代码时,它不能正常工作。
Android 中有没有规定我不能在没有用户输入的情况下直接传递变量?
有人知道如何解决这个问题吗?
下面是我目前卡住的代码
public class MyWeb extends Activity{
WebView webview;
String email;
String password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(activity_myweb);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
email = bundle.getString("ID");
password = bundle.getString("PW");
webview = (WebView)findViewById(R.id.logIn);
webview.setWebViewClient(new WebClient());
webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("myURL");
login(email, password);
}
private void login(String id, String pw){
webview.loadUrl("javascript: {" +
"document.getElementById('userID').value = '"+email +"';" +
"document.getElementById('userPW').value = '"+password+"';" +
"var a = document.getElementsByTagName('input');" +
"a[2].CheckSubmit(); };");
webview.loadUrl("javascript:CheckSubmit()");
}
webview.setWebViewClient(new WebClient() {
@Override
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript: {" +
"document.getElementById('userID').value = '" + email + "';" +
"document.getElementById('userPW').value = '" + password + "';" +
"var a = document.getElementsByTagName('input');" +
"a[2].CheckSubmit(); };");
webview.loadUrl("javascript:CheckSubmit()");
}
});
已解决,我猜是因为在网页加载之前调用了 JS,认为在此之前的 Activity 在我输入字段时加载了所有页面