0

Webview があり、html ファイルが読み込まれています。

ここで、Web ビューから Javascript 関数 DataInput() を呼び出したいと思います。

これが私のコードです。しかし、コンソールは戻ります

E/Web Console(435): Uncaught ReferenceError: DataInput is not defined:1

理由を知っている人はいますか?ありがとう!

WebView engine = (WebView) (findViewById(R.id.webView1));

    engine.setWebViewClient(new WebViewClient());
    engine.setWebChromeClient(new WebChromeClient() {
          public boolean onConsoleMessage(ConsoleMessage cm) {
                Log.d("MyApplication", cm.message() + " -- From line "
                                     + cm.lineNumber() + " of "
                                     + cm.sourceId() );
                return true;
              }
            });
    engine.getSettings().setJavaScriptEnabled(true);
    engine.getSettings().setPluginsEnabled(true);

    engine.loadUrl("file:///" + path);
    engine.loadUrl("javascript:DataInput()");

私のhtmlファイルには次のコードが含まれています:

<script type="text/javascript">    
function DataInput( )
{   
  $( "video" ).each( function(e){this.play();}   );
  $( "video" ).bind( "ended", function(e){this.play();});
}
</script>

さらに編集:::::

ボタンを追加し、onclick で JS を呼び出すと、(ちょっと) 機能しました...つまり

public void onClick(View arg0) {
    engine.loadUrl("javascript:DataInput()");

}

どうして????その理由がどうしても知りたいのですが……。

PS私は、ビデオが自動再生されたので(ちょっと)うまくいくと言った( $( "video" ).each( function(e){this.play();} ); ため)が、ループしない( $( "video" ) .bind( "終了", function(e){this.play();}); <<< 動作しない)

4

1 に答える 1

0

Javascriptをこれに変更します

<script type="text/javascript" src="location_of_your_jquery_file" />
<script type="text/javascript">
$(document).ready(function () {
    $.fn.gotofunc = function () {
        $("video").each(function (e) {
            this.play();
        });
        $("video").bind("ended", function (e) {
            this.play();
        });
    };

    function DataInput() {
        $.fn.gotofunc();
    }
});
</script>
于 2013-04-19T09:42:15.403 に答える