与NSExtensionJavaScriptPreprocessingFile共享扩展名没有图像

And*_*res 7 ios swift ios8-share-extension share-extension

我正在构建一个iOS Share扩展.我需要从网页中获取一些数据,因此我使用JavaScript文件来获取数据并将其发送回应用以在扩展中使用.

我注意到了以下内容.当我NSExtensionJavaScriptPreprocessingFile用我的JavaScript文件设置密钥时,SLComposeServiceViewController显示完美但没有图像!

像这样:

在此输入图像描述

如果我删除NSExtensionJavaScriptPreprocessingFile我的SLComposeServiceViewController节目如下:

在此输入图像描述

但我需要从网页(我用JS抓取的那个)访问一些数据,但我也需要那个图像!我完全失去了如何获得这两者,或者我甚至不知道这是否可能,因为Apple文档有点令人困惑.

谢谢!

Jan*_*non 2

我不确定这个问题的答案,但我自己一直在研究有关共享扩展的问题,并发现了一些可能对您有用的问题。总体思路是继续使用 JavaScript 预处理器并手动设置预览图像。

使用类似以下内容检索图像:

[itemProvider loadPreviewImageWithOptions:nil completionHandler:^(UIImage *image, NSError *error){

   if(image){
        //do anything here with the image
   }

}
Run Code Online (Sandbox Code Playgroud)

如此处所述: iOS 8 共享扩展 Safari 图像

SLComposeServiceViewController并通过覆盖设置预览图像loadPreviewView

override func loadPreviewView() -> UIView! {        
  imagePreviewView = UIImageView(image: UIImage(named: "imageName"))
  return imagePreviewView
}
Run Code Online (Sandbox Code Playgroud)

如下所述: 更改 SLComposeServiceViewController 中的预览图像

再说一遍,我不知道这是否有效。从我读到的内容看来应该是这样。