我正在开发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
CCD_ 1和CCD_。
现在我在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.addContentScriptFromURL
从web加载内容脚本。您可以尝试将其与file://
结合使用,看看它是否允许您从项目目录之外提取。
实际上,如果可能的话,您应该使用构建脚本将文件复制到扩展目录中,而不是使用相对目录链接。
https://developer.apple.com/documentation/safariextensions/safariextension/1635361-addcontentscriptfromurl