如何知道用户是否分享了我的应用?

Abd*_*yek 5 ios uiactivityviewcontroller swift

我的应用就是拿积分赢钱,我需要做的就是让用户分享我的应用,然后给他一些积分。

问题是我不知道如何检测用户是否真正共享了该应用程序

我正在使用以下代码:

func shareTapped(){
    let text = "example"
    let url = URL(string: "example.com")
    let image = UIImage(named: "example_image")
    let shareViewController = UIActivityViewController(activityItems: [text, image!, url!] ,applicationActivities: nil)
    self.present(shareViewController, animated: true, completion: {() in
        print("done")
    })
}
Run Code Online (Sandbox Code Playgroud)

共享方法运行良好,但我想知道在这种情况下我们是否可以调用任何委托。

谢谢。

Dha*_*esh 7

因此,用户可以取消共享的场景有 2 种。

一种是UIActivityViewController存在时,然后有一个取消按钮UIActivityViewController,用户可以从那里取消它,是的,您可以使用方法检测它

shareViewController.completionWithItemsHandler = { activity, completed, items, error in

}
Run Code Online (Sandbox Code Playgroud)

在上面的方法completed中,false如果用户取消了UIActivityViewController取消按钮。true如果用户共享成功,它将返回,但这是第二种情况。

因此,对于第二种情况,假设用户想要通过 watsapp 共享并单击来自 watsapp 的图标 UIActivityViewController,则会出现 watsapp 用户列表。

但是该屏幕上有一个取消按钮,用户可以从中取消共享,但您仍然会收到completed标记,true因此您无法检测用户是否单击了cancelwatsapp 用户列表中的按钮。