我在嘗試創建和使用JavaScript執行任務的Android服務。我遇到了this post,它描述瞭如何使用WindowManager
在服務中的WebView
內部運行JavaScript代碼。我能夠創建一個WebView
與.html
和.js
文件沒有問題。有一次,我嘗試將數據從android .java
服務傳遞到WebView
,我遇到了一個問題。無法在服務中執行Android WebView中的javascript代碼
我試圖以這種方式這樣做:
final WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
...
wv = new WebView(this);
wv.setWebViewClient(new WebViewClient());
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("file:///android_asset/www/test.html");
windowManager.addView(wv, params); // params set using method from linked post above
wv.evaluateJavascript("console.log('hello');", null);
wv.loadUrl("javascript:console.log('blah')");
無論調用evaluateJavascript()
也不loadUrl()
似乎對web視圖(我訪問使用Chrome開發者工具的控制檯)任何影響。
我已經測試過,在test.html
我可以添加一個<script>
標記並輸出文本到控制檯沒有問題。
我也嘗試在添加視圖之前調用函數無濟於事。
我會推薦使用JavaScript解釋器,例如[duktape](https://github.com/square/duktape-android)。 – CommonsWare
@CommonsWare我不是的原因是我的代碼使用了各種瀏覽器功能,我不得不重新實現我使用的東西像duktape(據我所知) –
所以我明白你想要的是加載test.html並執行一些JS代碼? – Steven