现在是一个非常肮脏的解决方案。这是我到目前为止所做的:
只是为了让大家知道,我的解决方案依赖于:
- 以管理员身份运行应用程序(必须具备)
- 软链接用户的项目字体文件夹。
现在让我们了解事实:
- webkit 无法渲染来自“file:///”url 的前端
我曾尝试使用 file:/// 但没有成功,而且将 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 路径,我可以在那里复制并在运行时使用。
谢谢。