我目前正在使用Appcelerator/Titanium構建Android和iOS移動應用程序。我應該使用WebView嗎?
該應用程序足夠簡單 - 我們的API返回最新故事,故事的JSON響應並顯示在列表中,以及用戶選擇呈現故事的時間。
到目前爲止,我一直在爲我們的應用程序使用Phonegap,所以它簡單地輸出HTML中的JSON響應並且一切正常。
由於我在Phonegap遇到的一些限制以及它實際上只是一個花哨的WebView,現在我已經轉移到Appcelerator。不過,我再也看不到任何更好的顯示故事內容的方式。
例如,API將完整的故事內容作爲HTML返回,並且可以包含幾乎任何HTML標籤<p>,<strong><img src=""/><a href="">links</a><script></script><iframe></iframe>
,因爲我們傾向於嵌入Facebook,Twitter帖子,鏈接,視頻,圖形,iframe和內聯javascript和CSS。
但是,對於我來說,再次使用WebViews似乎倒退了一步,但目前它似乎比嘗試解析HTML並提取可以呈現爲本地組件的元素更實用,其中可能不足(嵌入式推文/臉譜)
我知道appcelerator允許您設置HTML爲本機label
組件,但這隻支持Android,不包括JS或CSS。對於iOS,我已經看過AttributedStrings
,但這些支持有限。
我想我只是尋找一些再保證,這是做到這一點的正確方法。我已經閱讀了很多,渲染WebView組件會影響性能很多,所以這就是爲什麼我很猶豫。
我的另一個困惑是,我正在努力捕獲WebView中的所有點擊。例如,如果用戶點擊嵌入式推文,那麼應用程序立即變成全屏WebView的嘰嘰喳喳,當它真的應該在外部瀏覽器中打開(我想從Phonegap移動的原因)。 Appcelerator確實讓communicate via JavaScript能夠處理這樣的事情,但它不適用於嵌入式推文,因爲它們位於iFrame中。當然有一種方法可以做到這一點,還有無數其他應用程序已經實現了我想要做的事情,我只是覺得我錯過了一些明顯的東西!
謝謝@juanblo,你有關於嵌入第三方內容的這些「黑客」的更多信息?我發現它很奇怪,我怎麼也找不到關於它的信息,但是我見過無數的應用程序,它們正在做我想做的事情 – robobobobo