从我的共享扩展 ShareViewController 显示一个 UIAlertController
Display an UIAlertController from my share extension ShareViewController
我目前正在 swift 3 中开发我的第一个共享扩展。
这实际上是一个非常简单的扩展,它直接从 Safari 共享文本或 url(通过从网页内容中选择文本或 url)
我想在 ShareViewController (SLComposeServiceViewController) 的 didSelectPost() 中显示一个 UIAlertController,但这实际上不起作用。在用户点击 post 按钮后,警报将仅显示几纳秒。仅供参考,这是我为此使用的代码:
func displayUIAlertController(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)
self.present(alert, animated: true, completion: nil)
}
然后在 didSelectPost()
displayUIAlertController(title: "title", message: "test")
有没有办法从共享扩展中显示 UIAlertController?
谢谢
编辑。 我想我明白了,但是 我现在唯一关心的是确定当 Apple 验证我的内容时它会被接受应用商店的应用(这将是我的第一个应用,我什至还没有付费开发者帐户)
这是我的解决方案:
func displayUIAlertController(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { (action: UIAlertAction!) -> () in
self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
}))
self.present(alert, animated: true, completion: nil)
}
所以现在 self.extensionContext!.completeRequest() 在用户单击警报按钮后调用,而不是在 didSelectPost() 结束时调用。
它就像一个魅力,但我仍然想知道这是否是一个 "safe" 解决方案?如果是这样,我想我的解决方案可以帮助解决其他相关问题。
希望有人告诉我。
我编辑了最初的 post 并给出了一个有效的答案。
在没有得到你们的任何确认的情况下,我想我的解决方案是最好的,但请告诉我是否可以做一些不同的事情,或者如果这个解决方案在 Apple 验证期间可能会出现问题。
这是我的解决方案:
func displayUIAlertController(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { (action: UIAlertAction!) -> () in
self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
}))
self.present(alert, animated: true, completion: nil)
}
所以现在 self.extensionContext!.completeRequest() 在用户单击警报按钮后调用,而不是在 didSelectPost() 结束时调用。它就像一个魅力,但我仍然想知道这是否是 "safe" 解决方案?如果是这样,我想我的解决方案可以帮助解决其他相关问题。
我目前正在 swift 3 中开发我的第一个共享扩展。 这实际上是一个非常简单的扩展,它直接从 Safari 共享文本或 url(通过从网页内容中选择文本或 url)
我想在 ShareViewController (SLComposeServiceViewController) 的 didSelectPost() 中显示一个 UIAlertController,但这实际上不起作用。在用户点击 post 按钮后,警报将仅显示几纳秒。仅供参考,这是我为此使用的代码:
func displayUIAlertController(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)
self.present(alert, animated: true, completion: nil)
}
然后在 didSelectPost()
displayUIAlertController(title: "title", message: "test")
有没有办法从共享扩展中显示 UIAlertController? 谢谢
编辑。 我想我明白了,但是 我现在唯一关心的是确定当 Apple 验证我的内容时它会被接受应用商店的应用(这将是我的第一个应用,我什至还没有付费开发者帐户)
这是我的解决方案:
func displayUIAlertController(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { (action: UIAlertAction!) -> () in
self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
}))
self.present(alert, animated: true, completion: nil)
}
所以现在 self.extensionContext!.completeRequest() 在用户单击警报按钮后调用,而不是在 didSelectPost() 结束时调用。 它就像一个魅力,但我仍然想知道这是否是一个 "safe" 解决方案?如果是这样,我想我的解决方案可以帮助解决其他相关问题。
希望有人告诉我。
我编辑了最初的 post 并给出了一个有效的答案。 在没有得到你们的任何确认的情况下,我想我的解决方案是最好的,但请告诉我是否可以做一些不同的事情,或者如果这个解决方案在 Apple 验证期间可能会出现问题。
这是我的解决方案:
func displayUIAlertController(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { (action: UIAlertAction!) -> () in
self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
}))
self.present(alert, animated: true, completion: nil)
}
所以现在 self.extensionContext!.completeRequest() 在用户单击警报按钮后调用,而不是在 didSelectPost() 结束时调用。它就像一个魅力,但我仍然想知道这是否是 "safe" 解决方案?如果是这样,我想我的解决方案可以帮助解决其他相关问题。