当用户看到电话链接弹出窗口时检测用户的选择

发布于 2024-11-27 01:06:07 字数 104 浏览 2 评论 0原文

我想知道用户何时真正从我的应用程序(UIWebView)拨打电话,而不仅仅是点击电话号码。

当用户在我的应用程序中按下电话链接后收到呼叫/取消弹出窗口时,如何获取用户选择的结果?

I wish to know when the users are actually placing a call from my application (UIWebView) and not just tapping on the phone number.

How can I get the result of what the user selected when he receives the call/cancel popup after pressing a telephone link in my app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

捂风挽笑 2024-12-04 01:06:07

打开电话:来自 UIWebView 的链接上有一些与此相关的信息。

事情是如何运作的?你想要什么

操作系统不会为您显示呼叫/取消警报对话框。这取决于你。它出现在 Safari 中是因为 Safari 应用程序的 shouldStartLoadWithRequest 方法无疑会通过显示 UIAlertView 来响应 tel: 方案。 if ([url.scheme isEqualToString:@"tel"]) 的条件应该在 YES 时触发带有“呼叫”和“取消”按钮的 UIAlertView。在调用时,您将告诉共享应用程序 openURL;取消时,您将不会发出呼叫和您还需要返回 NO,以便您的应用程序不会尝试 loadWithRequest

代码示例:

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
            if (buttonIndex == 1) {
           //OK clicked
          } else {
    }
}
 
- (void) _showAlert:(NSString*)title
{
    UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:title message:@"Check your networking configuration." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alertView show];
    [alertView release];
}

希望这在某种程度上对您有帮助。

最好的问候

莱纳斯

There is some info regarding this on Opening tel: links from UIWebView.

How Things Work & What You Want

The OS is not going to handle showing the Call/Cancel alert dialog for you. That is up to you. It shows up in Safari because the Safari app's shouldStartLoadWithRequest method undoubtedly responds to the tel: scheme by showing a UIAlertView. Your conditional for if ([url.scheme isEqualToString:@"tel"]) should, when YES, trigger a UIAlertView with a Call and Cancel button. On Call, you will tell the sharedApplication to openURL; on Cancel, you will not issue the call & you will also want to return NO so your app does not attempt to loadWithRequest

Code Example:

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
            if (buttonIndex == 1) {
           //OK clicked
          } else {
    }
}
 
- (void) _showAlert:(NSString*)title
{
    UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:title message:@"Check your networking configuration." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alertView show];
    [alertView release];
}

Hope this helped you in some way.

Best Regards

Linus

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文