When we do the app, we will inevitably encounter the need to call SMS, telephone and other procedures. such as American Regiment.
Of course, these are just a few simple methods can be achieved, but the time will be forgotten, so want to write this blog. One is to pick up again to review, another equivalent to leave a backup, later forget, you can pick up to see.
First, say how to call the browser to open the Web page.
Of course, this is very simple, it takes just two words to achieve
Nsurl *url = [Nsurl urlwithstring:@ "http://www.baidu.com"];
//
[[UIApplication sharedapplication] openurl:url];
Send e-mail
Before we write this, we must first import the Messageui.framework library. and introduce two header files
and introduce a header file
#import <MessageUI/MFMailComposeViewController.h>
Sign an agreement
Mfmailcomposeviewcontrollerdelegate
The actual code is as follows
Class Mailclass = (nsclassfromstring (@ "Mfmailcomposeviewcontroller"));
if (Mailclass = = nil) {//first determine if support
NSLog (@ "Device does not support mail sending function");
}
The Apple system provides an interface for writing the Mail interface, and Mfmailcomposeviewcontroller is used to display the interface
Determine if the user is setting up a mail account
if (![ Mfmailcomposeviewcontroller Cansendmail]) {
NSLog (@ "The user does not have a mailbox account set up");
Uialertview *alertview = [[Uialertview alloc] initwithtitle:@ "Send results" message:@ "The user does not have a mailbox account set up" delegate:self cancelbuttontitle:@ "OK" otherbuttontitles:nil, nil];
[Alertview show];
Return
}
Mfmailcomposeviewcontroller inherited from Uinavigationcontroller
Mfmailcomposeviewcontroller *controller = [[Mfmailcomposeviewcontroller alloc] init];
Message subject
[Controller setsubject:@ "My hardware Research"];
Send a message to .....
[Controller settorecipients:@[@ "[email protected]"];
CC: For example, mail to the technical department, but also want to send to the Ministry of Security, Finance department, you will be in the CC address of the Department of Defense, Finance department they will receive together. Called CC
Secret delivery: such as mail to the technical department, but you also want to send a letter to the general manager, but do not want to let the technical department know, you send the address in the dark to fill the general manager, he will receive and the technical department will not know
As an example,
if: A send mail to B1, B2, B3, CC to C1, C2, C3, secret to D1, D2, D3.
So:
A know that they sent the mail to B1, B2, B3, and copied to C1, C2, C3, secret to D1, D2, D3.
B1 know this letter is a sent to B1, B2, B3 Mail, and copied to C1, C2, C3, but do not know the secret to D1, D2, D3.
C1 know this letter is a sent to B1, B2, B3 Mail, and copied to C1, C2, C3, but do not know the secret to D1, D2, D3.
D1 know this is a sent to B1, B2, B3 Mail, and copied to C1, C2, C3, and secret to himself, but do not know the secret to D2, D3.
Cc
[Controller setccrecipients:@[@ "[email protected]"];
Secret delivery
[Controller setbccrecipients:@[@ "[email protected]"];
Main content of the message
[Controller setmessagebody:@ "edit" Ishtml:yes];
Controller.mailcomposedelegate = self;
[Self Presentviewcontroller:controller animated:yes completion:nil];
Agent method for sending mail
-(void) Mailcomposecontroller: (Mfmailcomposeviewcontroller *) controller didfinishwithresult: (mfmailcomposeresult) Result Error: (NSERROR *) error
{
NSString *str = nil;
if (result = = mfmailcomposeresultfailed) {
str = @ "Send Failed";
}else if (result = = mfmailcomposeresultcancelled) {
str = @ "Send Cancel";
}else if (result = = Mfmailcomposeresultsent)
{
str = @ "sent successfully";
}else
{
str = @ "Send save";
}
[Self dismissviewcontrolleranimated:yes completion:nil];
Uialertview *alertview = [[Uialertview alloc] initwithtitle:@ "Send results" message:str delegate:self cancelbuttontitle:@ "OK" Otherbuttontitles:nil, nil];
[Alertview show];
}
Texting
1. Introduction of the MESSAGEUI framework
2. Import the Messageui/mfmessagecomposeviewcontroller.h header file
3. Signing Agreement Mfmessagecomposeviewcontrollerdelegate
4. Determine whether the user device can send text messages if not, return if you can, instantiate an SMS editor controller
5. Sign an agent
6. Modal to SMS Edit Controller view, edit SMS, send
7. Use the Proxy method to listen to send, if the send is completed, recycle the Edit controller view, prompt to send results
Function:
1. Can be returned after sending out information
2. Can send multiple people at once
3. Messages can be customized to support HTML format
Phone on the information set to open the IMessage function, the other side is also the iphone, information does not go carrier channel, but the network channel
The code is as follows:
To determine whether the user device can send information can not be returned
if (![ Mfmessagecomposeviewcontroller Cansendtext]) {
Return
}
Instantiate a controller
Mfmessagecomposeviewcontroller *messagecontroller = [[Mfmessagecomposeviewcontroller alloc] init];
Set SMS Content
Recipient
messagecontroller.recipients = @[@ "1800000000"];
SMS Content
Messagecontroller.body = @ "Call you two big uncle, can";
Messagecontroller.messagecomposedelegate = self;
Mode out Edit SMS Controller
[Self Presentviewcontroller:messagecontroller animated:yes completion:nil];
Then the agent.
Call agent method to close window after send completes
-(void) Messagecomposeviewcontroller: (Mfmessagecomposeviewcontroller *) controller didfinishwithresult: ( Messagecomposeresult) Result
{
NSString *str = @ "Result";
Three results sent unsuccessful cancellation
if (result = = Messagecomposeresultsent) {
str = @ "sent successfully";
}else if (result = = messagecomposeresultfailed)
{
str = @ "Send Failed";
}else
{
str = @ "Send Canceled";
}
Mode the controller back
[Self dismissviewcontrolleranimated:yes completion:nil];
Prompt to send results
Uialertview *alertview = [[Uialertview alloc] initwithtitle:@ "Send results" message:str delegate:self cancelbuttontitle:@ "OK" Otherbuttontitles:nil, nil];
[Alertview show];
}
Call
There are three ways to call:
1. After the call is not back to the reference will stay in the call log, not back to your application
Nsurl *url = [Nsurl urlwithstring:@ "tel://10086"];
//
[[UIApplication sharedapplication] openurl:url];
NSLog (@ "hit");
2. Using the TELPROMPT protocol, can back the reference, hang up the phone will go back to your application, but this agreement belongs to Apple's private agreement, if the application of the Protocol, the app is not available, for the jailbreak of the machine's development system, you can refer to this Protocol
Nsurl *url = [Nsurl urlwithstring:@ "telprompt://10086"];
[[UIApplication sharedapplication] openurl:url];
3. Use WebView to refer back and be legal, recommended
Self.webview = [[UIWebView alloc] initWithFrame:self.view.bounds];
Lazy loading, also known as deferred loading, is not loaded (overriding the Get method) when needed, (it takes up less memory)
The role of lazy loading
if (Self.webview = = nil) {
Self.webview = [[UIWebView alloc] init];
}
NSLog (@ "%p", Self.webview);
Nsurl *url = [Nsurl urlwithstring:@ "tel://10086"];
Nsurlrequest *request = [Nsurlrequest Requestwithurl:url];
[Self.webview Loadrequest:request];
Uialertview *alertview = [[Uialertview alloc] initwithtitle:@ "message" message:@ "Call over" Delegate:self cancelbuttontitle:@ " Determine "otherbuttontitles:nil, nil";
[Alertview show];
Hope this blog can let everyone learn, through these days to write a blog, I also reviewed a lot of knowledge, and also grew a lot.
.
How to make phone calls, send text messages, send emails, open web features