JavaScriptとAndroidからの値を渡して返し、電話機のギャッププラグインとして使用します

StackOverflow https://stackoverflow.com/questions/8982570

質問

渡した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()");
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top