簡體   English   中英

是否可以將Sencha Touch應用程序打包為Google Chrome打包應用程序?

[英]Any way to pack Sencha Touch app as Google Chrome packaged app?

我有一個Sencha Touch應用程序。 現在需要將其作為Google Chrome應用發布。 我將ST生產版本打包為Google Chrome擴展程序,並在控制台中收到一些錯誤消息:

  1. index.html具有內聯腳本(由ST microloader注入),但是Google Chrome應用程序中不允許內聯腳本。 可以通過將腳本移動到單獨的文件中來解決此問題。 有更好的解決方法嗎?
  2. window.localStorage不可用,我被迫使用chrome.storage,但該應用程序主動使用localStorage。 localStorage是同步的,chrome.storage是異步的。 我需要編寫自己的ST適配器來使用chrome.storage還是有更好的方法呢? 現有圖書館?
  3. EvalError:拒絕將字符串評估為JavaScript,因為在以下內容安全策略指令中不允許使用'unsafe-eval'腳本源:“ default-src'self'blob:文件系統:chrome-extension-resource:”。 我找不到此問題的確切來源...
  4. 我想我還會遇到其他問題,這些問題將在得到解決后,應用程序才能繼續進行...

主要問題是Sencha Touch(不是ExtJS)是否可以用於Google Chrome應用程序,或者肯定是錯誤的,不應該這樣做嗎? 如果Sencha Touch只是Google Chrome應用程序的不好解決方案,我需要在這里停下來嗎?

  1. 一個單獨的js文件是最好的解決方案,否則您將不得不對整個頁面進行沙箱處理

    您無法在Chrome應用頁面中使用內聯腳本。 [...] Chrome擴展程序可讓您放寬默認的內容安全政策; Chrome應用不會。

  2. 通過這樣制作一個prefs包裝器,可以使其比localStorage更好:

    • 在應用開始時將chrome.storage中的設置加載到內部對象中
    • 監視chrome.storage.onChanged事件偵聽器中的后續動態更改, 這些動態更改將更新內部對象並向您的應用廣播settingChanged事件。
    • prefs.set方法中,將值同時放入內部對象和chrome.storage
  3. 您使用的某些js庫中必須有eval 最好的解決方案是重構代碼以擺脫eval ,否則將頁面沙箱化,請參閱在Chrome擴展程序中使用eval。 安全地

我沒有使用過Sencha Touch,所以我無法說說它是否易於修改還是值得努力。
也嘗試在他們的支持論壇上提問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM