如何从 UIAlertView 获取取消和调用用户操作

Posted

技术标签:

【中文标题】如何从 UIAlertView 获取取消和调用用户操作【英文标题】:How to get cancel and call user action from UIAlertView 【发布时间】:2018-05-28 08:44:44 【问题描述】:

在显示点击号码(UIButton)的警报后,我试图让用户采取行动。

问题:当用户多次点击数字时,它会显示许多实例的警报。

预期结果:我只想显示一次警报。

以下是在数字(UIButton)点击时显示警报的行:

UIApplication.SharedApplication.OpenUrl(url)

我正在考虑在单击后禁用按钮操作,以便用户只能看到一个警报。

谁能告诉我当用户与警报交互时如何取消和调用按钮操作?

【问题讨论】:

为什么要在每次用户点击按钮时显示 AlertView?当用户点击足够多的数字时,您可以尝试触发UIApplication.SharedApplication.OpenUrl(url) 嘿伙计,你好吗?感谢您的回复。 让我与您分享一个代码。 callNurseButton.TouchUpInside += (sender, e) => var url = new NSUrl("tel:4806814449"); if (!UIApplication.SharedApplication.OpenUrl(url)) var av = new UIAlertView("Not supported", "Scheme 'tel:' is not supported on this device", null, "OK", null); av.Show(); ; ; 您能否分享更多代码,以便我了解您所做的以及您想要实现的目标? 代码:callNurseButton.TouchUpInside += (sender, e) => var url = new NSUrl("tel:4806814449"); if (!UIApplication.SharedApplication.OpenUrl(url)) var av = new UIAlertView("Not supported", "Scheme 'tel:' is not supported on this device", null, "OK", null); av.Show(); ; ; 【参考方案1】:

UIApplication.SharedApplication.OpenUrl(url) 总是会提示用户选择是否要拨打电话。所以每次调用这个api都会出现一个alert。

如果您想检查网址是否符合您的要求,您可以使用UIApplication.SharedApplication.CanOpenUrl(NSUrl url)。此函数探测系统上是否存在针对提供的 URL 的处理程序。例如,如果您在 iPhone 上使用“tel://4806814449”调用此函数,这将返回 true,但在 iPod Touch 上将返回 false。

当此方法返回 true 并且电话号码是您想要的电话号码时,调用 OpenUrl(url) 以显示用户身份验证。否则显示警告警报。

此外,我们应该在 ios 8+ 上使用 UIAlertController 而不是 UIAlertView。

【讨论】:

谢谢。向用户显示身份验证警报后,我可以获取用户的操作,即他是否单击取消或呼叫。 ? 不,我们不能。此警报归系统所有。但是我们可以通过 call kit 得到它 更多详情可以参考我的另一个post。 嗨@TusharMohod,对你有帮助吗? 嘿,我现在有不同的任务。所以我还没有完成这部分。现在我正在研究 xamarin ios 中的语音识别部分。一直好到现在。如果我遇到任何困难,我会寻求帮助。非常感谢您的关心!!

以上是关于如何从 UIAlertView 获取取消和调用用户操作的主要内容,如果未能解决你的问题,请参考以下文章

IAP iOS UIAlertView 取消按钮

从 UIAlertview 获取用户名、密码以在 willSendRequestForAuthenticationChallenge xcode 中使用

UIAlertView 输入 Apple ID 和密码 IAP

UIAlertView:wait_fences:未能收到回复:10004003

从登录 UIAlertView 取消时,应用内购买不发送 SKPaymentCancelled

如何在 UIAlertView(iOS)中的其他两个按钮(堆叠)之间添加取消按钮