Webview Html-button klicken-Erkennung in der Aktivität(java-code)
Ich versuche zu erkennen, die die html-Schaltfläche klicken Sie auf der webview in java-code(In Aktivität) .
Ich bezog mich dem anderen
Erkennen, klicken Sie auf die Schaltfläche HTML, über javascript in Android WebView
aber nicht funktioniert.Mein code:
index.html
<html>
<head>
<script language="javascript">
function js1() {
document.loginform.method="post";
document.loginform.action = "https://example.com/chechlogin.asp";
}
</script>
</head>
<body>
<form name="loginform">
<input type="text" name="empcode" value="58686" /><br/>
<input type="password" name="emppassNTL" />
<input type="submit" name="submit" id="submit_id" onclick="login.performClick();" />
</form>
</body>
</html>
MainActivity.java
package com.example.webview;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
@SuppressLint("SetJavaScriptEnabled")
public class MainActivity extends Activity {
private EditText field;
private WebView browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
field = (EditText)findViewById(R.id.urlField);
browser = (WebView)findViewById(R.id.webView1);
browser.getSettings().setJavaScriptEnabled(true);
browser.setWebViewClient(new MyBrowser());
browser.loadUrl("file:///android_asset/index.html");
}
@SuppressLint("JavascriptInterface")
public void open(View view){
String url = field.getText().toString();
browser.getSettings().setLoadsImagesAutomatically(true);
browser.getSettings().setJavaScriptEnabled(true);
browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
browser.loadUrl(url);
browser.addJavascriptInterface(new Object()
{
@JavascriptInterface
public void performClick()
{
Log.d("LOGIN::", "Clicked");
Toast.makeText(MainActivity.this, "Login clicked", Toast.LENGTH_LONG).show();
}
}, "login");
}
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Aber die performClick () - Methode nicht aufgerufen wird.
Bitte korrigieren Sie den Fehler.
- Code aus der AndroidManifest <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" android:maxSdkVersion="19"/> <uses-permission android:name="android.die Genehmigung.INTERNET"/>
- finden Sie diese stackoverflow.com/questions/4065312/...
- Ich habe auch den gleichen link oben, und bezeichnet das gleiche, aber nicht workking....Bitte haben Sie einen Blick auf meinen code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, wie ich das umgesetzt:
Und in der html-Datei:
javascript:
file3.js
HTML:
versuchen repalce diese
zu diesem
und in index.html
Weitere Infos hier: https://developer.android.com/guide/webapps/webview.html#BindingJavaScript
Sie brauchen, um zu erstellen, und übergeben Sie eine JavaScript-Schnittstelle von Android zu JavaScript. Sie können dann diese Schnittstelle als bridge-to-pass-Funktion Aufrufe mit Argumenten.
Weitere details und Beispiele hier: http://developer.android.com/guide/webapps/webview.html#BindingJavaScript
Ooops!!!
performClick () - Methode wurde an der falschen Stelle.
MainActivity.java sollte so etwas wie dieses :
In html-zum einen stellen Sie eine Schaltfläche mit dem Namen der BtnLogin mit der Methode performClick() wie unten :
Nun in Android(Aktivität oder Fragment) verwenden Sie folgenden code :
Hoffe, es wird helfen.