Phi*_*ton 27 iphone objective-c uiwebview
根据Apple的文档,为了从我的应用程序拨打电话,我需要实现以下协议:
HTML链接:
<a href="tel:1-408-555-5555">1-408-555-5555</a>
Run Code Online (Sandbox Code Playgroud)
原生应用URL字符串:
tel:1-408-555-5555
Run Code Online (Sandbox Code Playgroud)
但是,在完成从UIWebView内的HTML链接发起的电话呼叫后,我将重定向到我的应用程序.但是在完成从本机应用程序URL字符串进行的电话呼叫后,我的iphone会保留在iphone的常规电话应用程序中,如果我想返回我的应用程序,我必须手动执行此操作.
据我所知,通过阅读其他人所说的话,没有办法改变这种行为.
这是我的问题:
Ric*_*son 17
最简单的方法似乎是:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:0123456789"]];
Run Code Online (Sandbox Code Playgroud)
您将收到提示,您的应用将在通话结束后重新获得焦点.
lem*_*nar 16
-[UIApplication openURL:]使用tel:URL 调用和单击指向同一URL的链接之间的行为确实不同UIWebView.
使用UIWebView而不是UILabel可能有一些缺点,但您不必实际显示UIWebView以获取其telURL处理行为.相反,只需tel在UIWebView的实例中加载URL请求,而不将其添加到视图层次结构中.
例如:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface PhoneCaller : NSObject
{
@private
UIWebView *webview;
}
- (void)callTelURL:(NSURL *)url;
@end
@implementation
- (id)init
{
self = [super init];
if (self)
{
webview = [[UIWebView alloc] init];
}
return self;
}
- (void)callTelURL:(NSURL *)url
{
[webview loadRequest:[NSURLRequest requestWithURL:url]];
}
- (void)dealloc
{
[webview release];
[super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)
Eri*_*tto 10
请允许我简化一下.所有你需要的是这个小片段:
UIWebView *callWebview = [[UIWebView alloc] init];
NSURL *telURL = [NSURL URLWithString:@"tel:number-to-call"];
[callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
Run Code Online (Sandbox Code Playgroud)
这我在这里.
*最近在iOS 5.0上成功测试过.
| 归档时间: |
|
| 查看次数: |
8993 次 |
| 最近记录: |