【问题标题】:loading css on runtime is half-failure/half-success在运行时加载 css 是一半失败/一半成功
【发布时间】:2014-10-12 05:33:08
【问题描述】:

我已尝试让我的应用根据请求加载字体。我试图从我的应用程序创建的项目目录中读取字体,它会读取它需要的所有信息。

首先,我想问是否有办法知道是否有 app-storage:// 就像在 adobe air 中一样,因为那是要了我的命!我无法创建应用程序在运行时读取的临时文件,并通过 JS 在运行时放置带有新加载字体的样式表。!

如果有请告诉我!!!

【问题讨论】:

    标签: css runtime execution tidesdk


    【解决方案1】:

    现在是一个非常肮脏的解决方案。这是我到目前为止所做的:

    只是为了让大家知道,我的解决方案依赖于:

    1. 以管理员身份运行应用程序(必须具备)
    2. 软链接用户的项目字体文件夹。

    现在让我们了解事实:

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

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      相关资源
      最近更新 更多