私はアンドロイドでwebviewのページを読み込んでいます。ページには、次のコード、NBを持つ要素(ボタン)があります - それは、第三者のウェブサイトで、私はここに示したコードを制御することはできませんが: -どのようにアンドロイドwebviewでjavascriptインターフェイスを挿入するには?
<i class="icon close cardClose" role="button" title="Close recently linked screen" tabindex="0"></i>
を私はのようにjavascriptのインタフェースを追加します以下の方法: -
private class myWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
view.addJavascriptInterface(new Object()
{
@JavascriptInterface
public void performClick() throws Exception
{
Toast.makeText(Activity.this, "Login clicked", Toast.LENGTH_LONG).show();
}
}, "login");
return true;
}
}
mWebView.setWebViewClient(new myWebViewClient());
しかし、問題は、WebViewのソースコードが言うことである: -
* @param object the Java object to inject into this WebView's JavaScript
* context. Null values are ignored.
* @param name the name used to expose the object in JavaScript
*/
public void addJavascriptInterface(Object object, String name) {
checkThread();
mProvider.addJavascriptInterface(object, name);
}
ボタンdoesnotは、 "名前" という名前の属性を持っているようです。ある人が知識を持っているならば、同じことにいくつかの洞察を投げてください。私はあなたがこのよう
view.addJavascriptInterface(new JavaScriptInterfaceNew(getActivity(), this), "Android_Normal_Test");
、ここJavaScriptInterfaceNew
それを使用するために推薦
にいくつかのイベントを渡す必要があるとき、あなたのクラス名と
Android_Normal_Test
があなたのオブジェクトになりますです私たちがメソッドにアクセスできるJavascriptInterfaceオブジェクト名を渡す –@RahulKhuranaその名前を取得するには? –
私は匿名の内部クラスを使用しません。私が知っている 'addJavascriptInterface()'のすべての例は、名前付きクラスを使用しています。 – Robert