2011-09-15 41 views
3

我有一個我想要移植到Android的支持HTML5(JavaScript)的應用程序。我可以在沒有WebView的情況下運行Javascript,還是可以在沒有Activity上下文的情況下運行WebView(例如在服務中)?

在某些情況下,JavaScript代碼需要在後臺服務(無UI,因此無WebView)中運行。例如,爲了同步。

從研究中可以看出,沒有活動上下文,WebViews不會運行。除此之外,使用UI視圖僅用於運行代碼似乎很愚蠢,但我不確定其他選擇。

完成此操作的最佳方法是什麼?

感謝您的見解!

+0

你在做什麼聽起來不像你正在移植一個應用程序。 – Falmarri

+0

@Falmarri,感謝您的真正有用的評論;)是的,我將這個應用程序移植到Android。然而,有很多寫得很好的,經過嚴格測試的後端代碼,沒有真正的動機可以用Java重寫。這與前端體驗無關。謝謝。 – cottonBallPaws

回答

7

從研究這個,就不會出現網頁視圖沒有活動上下文中運行

實際上,他們可以。如果您撥打new WebView(ctxt),其中ctxt是任何一種Context,它的工作原理。最簡單的說,它在我幾個月前的最後一次嘗試中奏效。

除此之外,似乎傻使用UI視圖只在第一時間運行的代碼,但我不知道的替代品。

尋找已移植到Android的Rhino,V8,spidermonkey或其他JavaScript引擎的版本。特別是Rhino是SL4A的一部分,您可以從該項目獲得Rhino JAR以嵌入您的應用程序。

+0

謝謝!我會看看這些。 – cottonBallPaws

+0

但是,未連接到可見活動的視圖僅執行部分功能。 – Lev

+0

@Lev:儘管[WebView'方法適用於其他人,儘管有很多選項](https://medium.com/tech-quizlet/comparison-shopping-searching-for-javascript-engines-for -Android-bdc656538f2e#.slhsktu7m)。 – CommonsWare

相關問題