hzx*_*zxu 2 iphone objective-c deep-linking ios
我用这段代码拨打电话:
NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
Run Code Online (Sandbox Code Playgroud)
当通话结束时,它不会将用户带回应用程序.但是,如果我在UIWebView中显示一个网站,并且网站上有一个电话号码(即UIWebView识别它),如果我点击该电话号码链接拨打电话,我将在电话结束时被带回应用程序.
我的初步想法是,UIWebView在内部执行某些操作,例如指向电话应用程序的深层链接,然后是深层链接中的另一个深层链接,以将用户带回应用程序.但我不确定.有没有办法实现这个功能?
谢谢!
eri*_*ell 12
您需要使用telpromptURL,而不是tel.
所以:
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
Run Code Online (Sandbox Code Playgroud)
这也将在呼叫号码之前给用户一个确认框.
编辑:
这个问题涉及同一个问题.
编辑2:
对于那些想知道这个URL是否会导致App Store拒绝的人来说,答案通常是否定的.更大的风险是Apple会突然停止支持该telprompt计划.正如解释的这篇文章,有实现的一个稍微"更安全"的方式telprompt与UIWebView(使用telprompt内部,即使你把它用tel).文章中的相关代码显示了如何使用文档化的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]];
}
Run Code Online (Sandbox Code Playgroud)
(代码取自我第二次编辑中的文章参考)
| 归档时间: |
|
| 查看次数: |
6392 次 |
| 最近记录: |