iphone中结束电话后返回自己的应用
分类: iPhone系统截获 2013-12-18 17:38 243人阅读 评论(0) 收藏 举报
大家想不想在自己的应用中拨打电话呀?打电话可以用openURL:这个API, 如:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];但是当电话结束后,返回的是系统的拨打电话界面,如何才能返回自己的应用呢?这儿有两种方法与大家分享。
第一种是用UIWebView加载电话,这种是合法的,可以上App Store的。
代码如下:
1. // assuming you have an ivar to store a weak reference to a UIWebView:
2. // UIWebView *phoneCallWebView;
3. - (void) dialPhoneNumber:(NSString *)aPhoneNumber
4. {
5. "tel:%@",aPhoneNumber]];
6. if ( !phoneCallWebView ) {
7. phoneCallWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
8. }
9. [phoneCallWebView loadRequest:[NSURLRequest requestWithURL:phoneURL]];
10. }
11. - (void) dealloc
12. {
13. // cleanup
14. [phoneCallWebView release], phoneCallWebView = nil;
15. [super dealloc];
16. }
第二种是私有方法,不能上App Store的。
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://10086"]];
如何监听电话状态
分类: iPhone系统截获 2013-12-18 16:16 680人阅读 评论(2) 收藏 举报
[objc] view plain copy
1. [plain] view plaincopy
2. #import <CoreTelephony/CTCallCenter.h>
3. #import <CoreTelephony/CTCall.h>
4.
5. [plain] view plaincopy
6. -(void)detectCall
7. {
8. CTCallCenter *callCenter = [[CTCallCenter alloc] init];
9. .callEventHandler=^(CTCall* call)
10. {
11. if (call.callState == CTCallStateDisconnected)
12. {
13. @"Call has been disconnected");
14. self.viewController.signalStatus=YES;
15. }
16. else if (call.callState == CTCallStateConnected)
17. {
18. @"Call has just been connected");
19. }
20.
21. else if(call.callState == CTCallStateIncoming)
22. {
23. @"Call is incoming");
24. //self.viewController.signalStatus=NO;
25. }
26.
27. else if (call.callState ==CTCallStateDialing)
28. {
29. @"call is dialing");
30. }
31. else
32. {
33. @"Nothing is done");
34. }
35. };
36. }
看到了吗,其实就是改tel为telprompt.
这样,当电话结束手就可以返回到自己的应用程序。是不是很爽呢?
大家想不想在自己的应用中拨打电话呀?打电话可以用openURL:这个API, 如:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];但是当电话结束后,返回的是系统的拨打电话界面,如何才能返回自己的应用呢?这儿有两种方法与大家分享。
第一种是用UIWebView加载电话,这种是合法的,可以上App Store的。
代码如下:
1. // assuming you have an ivar to store a weak reference to a UIWebView:
2. // UIWebView *phoneCallWebView;
3. - (void) dialPhoneNumber:(NSString *)aPhoneNumber
4. {
5. "tel:%@",aPhoneNumber]];
6. if ( !phoneCallWebView ) {
7. phoneCallWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
8. }
9. [phoneCallWebView loadRequest:[NSURLRequest requestWithURL:phoneURL]];
10. }
11. - (void) dealloc
12. {
13. // cleanup
14. [phoneCallWebView release], phoneCallWebView = nil;
15. [super dealloc];
16. }
第二种是私有方法,不能上App Store的。
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://10086"]];
如何监听电话状态
分类: iPhone系统截获 2013-12-18 16:16 680人阅读 评论(2) 收藏 举报
[objc] view plain copy
1. [plain] view plaincopy
2. #import <CoreTelephony/CTCallCenter.h>
3. #import <CoreTelephony/CTCall.h>
4.
5. [plain] view plaincopy
6. -(void)detectCall
7. {
8. CTCallCenter *callCenter = [[CTCallCenter alloc] init];
9. .callEventHandler=^(CTCall* call)
10. {
11. if (call.callState == CTCallStateDisconnected)
12. {
13. @"Call has been disconnected");
14. self.viewController.signalStatus=YES;
15. }
16. else if (call.callState == CTCallStateConnected)
17. {
18. @"Call has just been connected");
19. }
20.
21. else if(call.callState == CTCallStateIncoming)
22. {
23. @"Call is incoming");
24. //self.viewController.signalStatus=NO;
25. }
26.
27. else if (call.callState ==CTCallStateDialing)
28. {
29. @"call is dialing");
30. }
31. else
32. {
33. @"Nothing is done");
34. }
35. };
36. }
看到了吗,其实就是改tel为telprompt.
这样,当电话结束手就可以返回到自己的应用程序。是不是很爽呢?
大家想不想在自己的应用中拨打电话呀?打电话可以用openURL:这个API, 如:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];但是当电话结束后,返回的是系统的拨打电话界面,如何才能返回自己的应用呢?这儿有两种方法与大家分享。
第一种是用UIWebView加载电话,这种是合法的,可以上App Store的。
代码如下:
1. // assuming you have an ivar to store a weak reference to a UIWebView:
2. // UIWebView *phoneCallWebView;
3. - (void) dialPhoneNumber:(NSString *)aPhoneNumber
4. {
5. "tel:%@",aPhoneNumber]];
6. if ( !phoneCallWebView ) {
7. phoneCallWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
8. }
9. [phoneCallWebView loadRequest:[NSURLRequest requestWithURL:phoneURL]];
10. }
11. - (void) dealloc
12. {
13. // cleanup
14. [phoneCallWebView release], phoneCallWebView = nil;
15. [super dealloc];
16. }
第二种是私有方法,不能上App Store的。
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://10086"]];
如何监听电话状态
分类: iPhone系统截获 2013-12-18 16:16 680人阅读 评论(2) 收藏 举报
[objc] view plain copy
1. [plain] view plaincopy
2. #import <CoreTelephony/CTCallCenter.h>
3. #import <CoreTelephony/CTCall.h>
4.
5. [plain] view plaincopy
6. -(void)detectCall
7. {
8. CTCallCenter *callCenter = [[CTCallCenter alloc] init];
9. .callEventHandler=^(CTCall* call)
10. {
11. if (call.callState == CTCallStateDisconnected)
12. {
13. @"Call has been disconnected");
14. self.viewController.signalStatus=YES;
15. }
16. else if (call.callState == CTCallStateConnected)
17. {
18. @"Call has just been connected");
19. }
20.
21. else if(call.callState == CTCallStateIncoming)
22. {
23. @"Call is incoming");
24. //self.viewController.signalStatus=NO;
25. }
26.
27. else if (call.callState ==CTCallStateDialing)
28. {
29. @"call is dialing");
30. }
31. else
32. {
33. @"Nothing is done");
34. }
35. };
36. }
看到了吗,其实就是改tel为telprompt.
这样,当电话结束手就可以返回到自己的应用程序。是不是很爽呢?
[objc] view plain copy
1. [plain] view plaincopy
2. #import <CoreTelephony/CTCallCenter.h>
3. #import <CoreTelephony/CTCall.h>
4.
5. [plain] view plaincopy
6. -(void)detectCall
7. {
8. CTCallCenter *callCenter = [[CTCallCenter alloc] init];
9. .callEventHandler=^(CTCall* call)
10. {
11. if (call.callState == CTCallStateDisconnected)
12. {
13. @"Call has been disconnected");
14. self.viewController.signalStatus=YES;
15. }
16. else if (call.callState == CTCallStateConnected)
17. {
18. @"Call has just been connected");
19. }
20.
21. else if(call.callState == CTCallStateIncoming)
22. {
23. @"Call is incoming");
24. //self.viewController.signalStatus=NO;
25. }
26.
27. else if (call.callState ==CTCallStateDialing)
28. {
29. @"call is dialing");
30. }
31. else
32. {
33. @"Nothing is done");
34. }
35. };
36. }