在 iOS 共享扩展中使用动态 Javascript

Posted

技术标签:

【中文标题】在 iOS 共享扩展中使用动态 Javascript【英文标题】:Use Dynamic Javascript in iOS Share Extension 【发布时间】:2015-03-30 08:07:49 【问题描述】:

我正在为 ios 8 开发一个共享扩展,看起来我可以在页面上运行 javascript 代码来获取一些信息,比如法师的标记

但在苹果文档上它说 javascript 代码必须在 .js 文件中,但我的 javascript 代码来自服务器并且它是动态的。

是否可以运行我从服务器下载的 javascript,或者我可以在每次需要使用时更改 js 文件内容?

【问题讨论】:

【参考方案1】:

您无法使用当前共享扩展系统中的内置支持来执行此操作。

Javascript 文件需要在扩展的Info.plist 中按名称列出,在NSExtensionJavaScriptPreprocessingFile 键的值中。名为那里的文件需要存在于应用程序扩展的包中。但是捆绑包不可写,因此您无法替换或更改文件。

如果您满足以下条件,您可能能够做您描述的事情:

    包含一个基本的 JS 文件,它只将整个页面源返回到您的扩展程序。 使用JavaScriptCore.framework 在您的扩展程序中进一步处理该数据。

我不知道为什么这不起作用,但我没有尝试过,这有点不寻常。不过,考虑到您的需求,还是值得研究的。

【讨论】:

以上是关于在 iOS 共享扩展中使用动态 Javascript的主要内容,如果未能解决你的问题,请参考以下文章

使用 iOS 中的共享扩展从 Mail App 共享附件

iOS 8 动态框架:未加载库

iOS 共享扩展中的 API 请求立即失败

如何在上传前在 iOS 共享扩展中缩小图像

Swift 中的 iOS 共享扩展抓取 URL

在IOS8中使用共享扩展时如何获取源应用程序的bundleId