【问题标题】:Share extension with NSExtensionJavaScriptPreprocessingFile no image与 NSExtensionJavaScriptPreprocessingFile 共享扩展没有图像
【发布时间】:2016-02-18 01:26:27
【问题描述】:

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

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

像这样:

如果我删除 NSExtensionJavaScriptPreprocessingFile 我的 SLComposeServiceViewController 会显示如下:

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

谢谢!

【问题讨论】:

  • 同样的斗争。你最终发现了什么?
  • 经过几个小时的测试,我相信你必须选择其中一个。您不能同时拥有网页中的 previewImage 和使用 NSExtensionJavaScriptPreprocessingFile。不是我希望找到的答案。

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


【解决方案1】:

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

使用以下内容检索图像:

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

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

}

如此处所述: iOS 8 Share Extension Safari Image

并通过覆盖loadPreviewView来设置SLComposeServiceViewController的预览图:

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

如此处所述: Change the preview image in an SLComposeServiceViewController

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

【讨论】:

  • 不,我认为这行不通。 OP 提出的相同问题仍然存在。
  • 我对此进行了测试,但它不起作用。没有图像通过 - 这让我想知道 Apple 是否有一个默认的 javascript 处理器来提供图像,当你添加自己的处理器时,你会覆盖他们的。
猜你喜欢
  • 1970-01-01
  • 2012-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多