2014-10-12 51 views
0

我試過讓我的應用程序根據請求加載字體。我嘗試從我的應用程序創建的項目目錄中讀取字體,並讀取它需要的所有信息。在運行時加載css是半失敗/半成功

首先,我想問問是否有辦法知道是否有應用程序存儲://就像在adobe空氣中一樣,因爲這是殺死我!我無法創建臨時文件以供應用程序在運行時讀取,例如,通過JS在運行時添加了新的加載字體的樣式表。

如果有一個,請讓我知道!

回答

0

現在是一個非常骯髒的解決方案。這是我做了什麼到現在:

只是爲了讓知道大家,我的解決方案依賴於:

  1. 運行應用程序作爲管理員(必須有)
  2. softlinking用戶的項目字體夾。

現在可以得到的事實:

  • 的WebKit無法呈現戰線從未來的 「file:///」 URL

使用的文件我曾嘗試:///沒有成功,並且既沒有將SVG字體轉換爲base64,也完全沒有辦法。試圖在運行時樣式表上做的更糟,所以尋找解決方案時我必須依賴命令提示符。現在我在Windows上運行此和作品珍珠:

var WinDoExec = function(cmdline){ 
    var echoCmd = ["C:\\Windows\\System32\\cmd.exe","/C"]; 
    echoCmd = $.merge(echoCmd,cmdline); 
    console.log(echoCmd); 
    var echo = Ti.Process.createProcess(echoCmd); 

    echo.setOnReadLine(function(data) { 
     console.log(data.toString()); 
    }); 
    echo.stdout.attach(echo.stdin); 
    echo.launch(); 
}; 

所以從這裏,我不得不創建一個mklink從用戶的項目字體文件夾到應用程序的字體目錄(在NTFS軟連接),所以它可以在運行時訪問。

WinDoExec(["mklink","/D","C:\\Program Files(x86)\\myapp\\Resources\\assets\\fonts\\userfonts","C:\\Users\\windowsuser\\projectAppFolder\\ProjectName\\Fonts"]); 

這一點,建立一個軟鏈接到應用程序運行時加載固定爲用戶的項目自定義字體到運行時應用程序的問題...

我知道這是有點「自虐」與程序環境,但我真的希望有一種方法讓應用程序有一個url可訪問路徑(如存儲url路徑或臨時url路徑),以便在運行時處理事情。我可以將字體複製到臨時URL容器文件夾中,並根本不影響應用程序系統文件夾。

所以如果你們在tidekit上閱讀這個,請允許開發人員爲臨時對象(如用戶的svg/ttf文件)提供可訪問的url路徑,以便我可以在那裏複製並在運行時使用。

謝謝。