【问题标题】:Is it possible to import content scripts out of project folder for Safari App Extension?是否可以从 Safari App Extension 的项目文件夹中导入内容脚本?
【发布时间】:2019-03-01 13:14:57
【问题描述】:

我正在开发一个 Safari 应用程序扩展。但是我的内容脚本不在 Xcode 项目文件夹中。是否可以导入那些脚本文件?

我在苹果官方文档中看到:

对于每个脚本文件,将字典添加到数组中。每个字典都必须有一个 Script 键,其值指定要包含的脚本文件的路径(相对于包的 Resources 目录)。

假设我的扩展项目名为 SafariExt。我的应用的文件夹结构:

SafariExt   // Xcode project root folder
 |
 +-- SafariExt Extension
    |
    +--script.js    // this is the default script file in Xcode project, and I specified path relative to this folder


Scripts     // my scripts folder
 |
 +-- myScript.js    // the file I want to import

SafariExtScripts 位于同一基本文件夹中。

现在我在 Info.plist 中使用 ../../Scripts/myScript.js 来引用 myScript.js 文件,但在 Safari 中这个文件没有被加载。

Info.plist 如下所示:

<key>SFSafariContentScript</key>
<array>
    <dict>
        <key>Script</key>
        <string>../../Scripts/myScript.js</string>
    </dict>
</array>

【问题讨论】:

    标签: safari-app-extension


    【解决方案1】:

    您应该能够使用safari.addContentScriptFromURL 从网络加载内容脚本。您可以尝试将它与 file:// 结合使用,看看它是否允许您从项目目录之外拉取。

    实际上,如果可能,您应该使用构建脚本将文件复制到扩展目录中,而不是使用相对目录链接。

    https://developer.apple.com/documentation/safariextensions/safariextension/1635361-addcontentscriptfromurl

    【讨论】:

    • .addContentScriptFromURL(...) 是 Safari Extensions JS 的一部分,现已弃用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 2017-07-01
    • 2018-03-08
    • 1970-01-01
    • 2011-03-17
    相关资源
    最近更新 更多