在iPhone上打电话并将用户带回应用程序?(UIWebView做到了这一点)

在iPhone上打电话并将用户带回应用程序?(UIWebView做到了这一点),iphone,objective-c,ios,deep-linking,Iphone,Objective C,Ios,Deep Linking,我用这个密码打电话: NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 当通话结束时,它不会将用户带回应用程序。但是,如果我在UIWebView中显示一个网站,并且该网站中有一个电话号码(即UIWebView识别该

我用这个密码打电话:

NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
当通话结束时,它不会将用户带回应用程序。但是,如果我在UIWebView中显示一个网站,并且该网站中有一个电话号码(即UIWebView识别该号码),并且如果我点击该电话号码链接拨打电话,则当通话结束时,我将被带回应用程序

我的初步想法是,UIWebView在内部做了一些事情,比如到手机应用程序的深度链接,然后在深度链接中再做一个深度链接,将用户带回应用程序。但我不确定。有没有办法实现此功能


谢谢

您需要使用
telprompt
URL,而不是
tel

因此:

这也会在用户拨打电话之前给用户一个确认框

编辑:

问题涉及同样的问题

编辑2:

对于那些想知道这个URL是否会导致应用商店拒绝的人来说,答案通常是否定的。更大的风险是苹果会突然停止支持
telprompt
方案。正如所解释的,使用
UIWebView
(内部使用
telprompt
,即使您使用
tel
调用它)实现
telprompt
,有一种稍微“安全”的方法。文章中的相关代码展示了如何使用文档化的
tel
方案仍然可以给您带来
telprompt
的效果:

+ (void)callWithString:(NSString *)phoneString {
    [self callWithURL:[NSURL URLWithString:[NSString     
        stringWithFormat:@"tel:%@",phoneString]]];
}

+ (void)callWithURL:(NSURL *)url {
    static UIWebView *webView = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{  
        webView = [UIWebView new];
    });
    [webView loadRequest:[NSURLRequest requestWithURL:url]];
}

(代码摘自我第二次编辑中的文章参考)

该网站:讨论了是否使用telprompt(未记录,苹果可能会在不通知的情况下更改API),而是使用一个类别将数字发送到使用telprompt打开的web视图。如果苹果做了一些奇怪的事情,这样做的好处是不会中断。

是的,但是一旦用户打电话,并且电话结束,你能把用户带回应用程序吗?这个URL提示会自动完成。但是在你提供的链接中,看起来这是一个私有协议,如果您使用它,应用程序将被拒绝。@Rickay苹果是否批准它?
+ (void)callWithString:(NSString *)phoneString {
    [self callWithURL:[NSURL URLWithString:[NSString     
        stringWithFormat:@"tel:%@",phoneString]]];
}

+ (void)callWithURL:(NSURL *)url {
    static UIWebView *webView = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{  
        webView = [UIWebView new];
    });
    [webView loadRequest:[NSURLRequest requestWithURL:url]];
}