2014-10-12 50 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路径,以便我可以在那里复制并在运行时使用。

谢谢。