使用NSExtensionJavaScriptPreprocessingFile共享扩展名无图像

时间:2016-02-18 01:26:27

标签: ios swift ios8-share-extension share-extension

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

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

像这样:

enter image description here

如果我删除了NSExtensionJavaScriptPreprocessingFile我的SLComposeServiceViewController这样的节目:

enter image description here

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

谢谢!

1 个答案:

答案 0 :(得分:2)

我肯定不知道答案,但我自己一直在研究有关扩展分享的问题,并且遇到了一对可能对您有用的问题。一般的想法是继续使用JavaScript预处理器并手动设置预览图像。

使用以下内容检索图像:

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

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

}

如下所述: iOS 8 Share Extension Safari Image

通过覆盖SLComposeServiceViewController

设置loadPreviewView的预览图像
override func loadPreviewView() -> UIView! {        
  imagePreviewView = UIImageView(image: UIImage(named: "imageName"))
  return imagePreviewView
}

如下所述: Change the preview image in an SLComposeServiceViewController

同样,我不知道这是否有效。看起来应该是我应该阅读的内容。