如何在没有共享UI的情况下在iOS8中创建共享扩展

Bri*_*ark 6 share objective-c ios ios-extensions

我正在使用Pocket,他们似乎创建了一个共享扩展,只需将URL发布到他们的服务w/o UI.

有人知道如何复制这个吗?我是扩展程序的新手,但对iOS/Objective-C非常熟悉

在此输入图像描述

在此输入图像描述

Bri*_*ark 9

弄清楚了.

只是不要使用内置的SLComposeServiceViewController

@interface ShareViewController : UIViewController

@end
Run Code Online (Sandbox Code Playgroud)

并确保在完成共享扩展时调用以下函数

[self.extensionContext completeRequestReturningItems:@[] completionHandler:nil];
Run Code Online (Sandbox Code Playgroud)

换句话说,用以下内容替换ShareViewController.swift:

import UIKit

class ShareViewController: UIViewController {
    override func viewDidLoad() {
        extensionContext?.completeRequest(returningItems: [], completionHandler: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 用完整的例子扩展你的答案会很棒。梅恩谢谢 (3认同)
  • 在 iOS 16 中,从“viewDidLoad()”调用“completeRequest(returningItems:completionHandler:)”对我来说不起作用,但在“viewDidAppear(_:)”中调用它确实有效。 (3认同)