は私がJavaからAndroidのWebViewでjQuery関数を呼び出しますか?
WebView.loadUrl("javascript:hoge()");
私は非jQueryの関数を呼び出すことができますようなHTML で定義されているJavaScript関数を呼び出すようにしようとしていますが、私は「$(ドキュメント)内で定義された関数を呼び出すことはできません。 ready(function(){})(jQuery); '、以下のようにします。
<script>
//I can call this function by webview.loadUrl("javascript:something()");
function something(){
//do something
}
$(document).ready(function(){
//but I can't call this function by webview.loadUrl("javascript:hoge()");
function hoge(){
//do something.
}
})(jQuery);
</script>
普通のjavascript関数のようにJavaからhoge()を呼び出す方法はありますか?
関数が '$(document).ready(function(){})(jQuery);'内になくてもjQuery Selectorを使用できることがわかりましたが、その回避策では追加のjQueryライブラリを使用しないでください。
実際のコードはbelllowです。
https://github.com/YoshimuraSei/AndrOutliner/tree/master/Outliner
、これはHTMLファイル https://github.com/YoshimuraSei/AndrOutliner/blob/master/Outliner/assets/www/treeview.html
であり、これは私がJavaScript関数を呼び出すためにしようとしているJavaコードです。ライン100上の https://github.com/YoshimuraSei/AndrOutliner/blob/master/Outliner/src/com/yslibrary/android/outliner/TreeViewFragment.java
、私は「(htmlファイルのline34参照)、現在それが内部ではないので、それが呼び出すことができる」)(ジャバスクリプトfunction'test1を呼び出すようにしようとしています$(ドキュメント).ready( function(){})(jQuery); '、しかしtest1()から追加のjQueryライブラリメソッド' nestedSortable() 'を呼び出すことはできません。
どうすればこの問題を解決できますか?
編集:
これはちょうどjQueryライブラリとプラグインを読み込むタイミングですか?
webviewへの読み込み後にこれらのエラーが発生しました。
Uncaught TypeError: Cannot read property 'mouse' of undefined--From line 7 of file:///android_asset/www/js/jquery.ui.mouse.touch.js
Uncaught TypeError: Cannot read property 'sortable' of undefined--From line 15 of file:///android_asset/www/js/jquery.ui.nestedSortable.js
「マウス」と「ソート可能」は、これらの2つのファイルがロードされる前にロードする必要がありますjquery.uiの性質、あるので、私はロード順が少し奇妙であることを前提としています。
ありがとうございました。つまり、メソッドを使用するたびにhtmlをリロードする必要があります。 – yshrsmz
問題が解決しました。問題はタイプミスでした。アンドロイドのjavascriptインターフェイスに関する情報をありがとう。私は、Javaコードにjavascript関数の戻り値を渡す方法を発見しました。 – yshrsmz