JavaScriptとAndroidからの値を渡して返し、電話機のギャッププラグインとして使用します
-
12-11-2019 - |
質問
渡したPhave用のプラグインを作成し、JavaScriptとAndroidの間の値を返します。
誰もがこれを行う方法に関する考えを提案することができますか?
解決
実際には、これはあまり難しくありません。ここでは、ページ内のJavaScriptからネイティブコードを呼び出し、versa:を紹介します。
ウェブビュー内からネイティブコードを呼び出す:
Webビューを作成するときは、JavaScriptインターフェイスを追加します(基本的には、メソッドがWebビューでJavaScriptを介して呼び出されるように照会されるJavaクラス。
.
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
JavaScriptインターフェイスクラス自体の定義(これは私の鉱山の別の答えから取った例示的なクラスで、ネイティブの意図でビデオを開く)
.
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
public void startVideo(String videoAddress){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
activity.startActivity(intent);
}
}
このコードを呼び出したい場合は、次の方法を提供するページのHTMLをフォームにしてください。
.
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
簡単否か?
ネイティブコードからJavaScriptコードを呼び出す:
これは、WebViewでロードされているHTMLのコードでも、JavaScript関数が定義されている:
.
<script>
function function(){
//... do something
}
</script>
その後、そのようなネイティブコードのWebViewを介してこの関数を呼び出します。
.webView.loadUrl("javascript:function()");
他のヒント