7

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

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

像这样:

在此处输入图像描述

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

在此处输入图像描述

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

谢谢!

4

1 回答 1

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
}

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

再说一次,我不知道这是否可行。从我读过的内容来看,它似乎应该如此。

于 2016-12-05T19:47:59.457 回答