WebViewとButtonを使用したアクティビティがあります。 Android sdk 17. Webサイトは私のものではないので、変更することはできません。Androidボタンをクリックして、jsコードを実行する必要があります。
これをやろうとしている
public class RostelecomLoginActivity extends Activity {
WebView webView;
String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rostelecom_login);
Intent webIntent = getIntent();
final String url = webIntent.getStringExtra("url");
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSaveFormData(true);
webView.getSettings().setSavePassword(true);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
webView.addJavascriptInterface(new Object(){
@JavascriptInterface
public void test(){
Log.d("JS", "test");
}
},"Android");
webView.loadUrl("javascript:(function(){document.getElementById('mA').click();})()");
}
});
webView.loadUrl(url);
}}
しかし、それは何もしません。どうすればjsを正しく呼び出すことができますか?
webview.loadUrl("javascript:functionName(\"" + argument + "\")");
これで線を変えて.
myWebView.loadUrl("javascript:testEcho('Hello World!')");
これを試してみてくださいあなたに役立つかもしれません...
アクセスしている外部Webサイトをクリックしたときに、テスト関数を呼び出そうとしていると思います。
Java側で定義した関数を呼び出す方法は、JavaScriptインターフェースを作成したときに割り当てた名前を使用することです。この場合、"Android"
したがって、呼び出しは「window.Android.test()」になります
また、あなたはウェブサイトをロードするのを待ってから、JavaScriptコードを注入する必要があります。
数週間前にコードで行った答えを確認してください JavaScriptが完了するまでWebViewを非表示にします 。これは、Webビューを使用してJSおよびJava=を管理するための同様のアプローチです。
ページが読み込まれたときに簡単なテストを開始し、後でJavaScriptクリック関数内に追加することを検討してください。