如何从 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 获取取消和调用用户操作的主要内容,如果未能解决你的问题,请参考以下文章
从 UIAlertview 获取用户名、密码以在 willSendRequestForAuthenticationChallenge xcode 中使用
UIAlertView 输入 Apple ID 和密码 IAP
UIAlertView:wait_fences:未能收到回复:10004003