iOS開發:APP撥打電話、發簡訊、發郵件功能
在iOS開發過程中,經常會用到點選公司簡介的電話號碼,會直接撥打電話;或者點選網址連結發郵件,點擊發簡訊按鈕直接發簡訊等,這些功能雖小,但很實用。
一、撥打電話功能:
通過app撥打電話有三種方式,具體程式碼如下所示:
1.直接跳轉到撥打電話介面,不彈出撥打電話提示框,打完電話不會返回到原app中:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];
或者:
NSURL *url = [NSURL URLWithString:@"tel://10086"];
[[UIApplication sharedApplication] openURL:url];
2.撥打電話之前會彈出一個提示框詢問使用者是否撥號,撥打電話之後能自動返回到原app中:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:10086"]];
或者:
NSURL *url = [NSURL URLWithString:@"telprompt://10086"];
[[UIApplication sharedApplication] openURL:url];
3.有彈出提示框,也會返回到原app中:
NSMutableString *str = [[NSMutableString alloc] initWithFormat:@"tel:%@",@"1
UIWebView *callView = [[UIWebView alloc] init];
[callView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
[self.view addSubview:callView];
二、發簡訊功能:
1.不可以自定義簡訊內容,直接到發簡訊介面,傳送完簡訊完成後會停留在發簡訊介面中,不能自動返回,需要手動返回原app中:
NSURL *url = [NSURL URLWithString:@"sms://10086"];
[[UIApplication sharedApplication]openURL:url];
2.可以自定義簡訊,也可以傳送完簡訊直接返回原app中:
首先需要在專案裡面匯入一個發簡訊的框架:MessageUI.framework,如圖所示:
然後在發簡訊呼叫的地方,匯入標頭檔案#import <MessageUI/MessageUI.h>,並且要遵循代理MFMessageComposeViewControllerDelegate,並實現代理方法。
//代理方法:
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
[self dismissViewControllerAnimated:YES completion:nil];
switch (result) {
case MessageComposeResultSent:
//簡訊傳送成功
break;
case MessageComposeResultFailed:
//簡訊傳送失敗
break;
case MessageComposeResultCancelled:
//簡訊被使用者取消傳送
break;
default:
break;
}
}
//傳送簡訊方法:
- (void)showMessageView:(NSArray *)phones
title:(NSString *)title body:(NSString *)body {
if(
[MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController * controller =
[[MFMessageComposeViewController alloc] init];
controller.recipients = phones;
controller.navigationBar.tintColor =
[UIColor redColor];
controller.body = body;
controller.messageComposeDelegate = self;
[self presentViewController:controller animated:YES completion:nil];
[[[[controller viewControllers] lastObject] navigationItem]
setTitle:title];//修改簡訊介面的標題
} else{
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@"提示資訊"
message:@"該裝置不支援傳送簡訊功能"
delegate:nil
cancelButtonTitle:@"確定"
otherButtonTitles:nil, nil];
[alert show];
}
}
//在需要發簡訊的具體地方,呼叫傳送簡訊的方法:
[self showMessageView:[NSArray arrayWithObjects:@"10010",@"10086", nil] title:@"test" body:@"Hello world!"];
三、傳送郵件
傳送郵件的方法和傳送簡訊的第二種方法差不多,第一步都是在專案裡面匯入一個發簡訊的框架:MessageUI.framework,然後在發郵件呼叫的地方,匯入標頭檔案#import <MessageUI/MessageUI.h>,並且要遵循代理MFMailComposeViewControllerDelegate,並實現代理方法。
//代理方法:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
switch (result) {
case MFMailComposeResultCancelled : //取消傳送mail
break;
case MFMailComposeResultSaved : //儲存郵件
break;
case MFMailComposeResultSent : //傳送郵件
break;
case MFMailComposeResultFailed : // 嘗試儲存或傳送郵件失敗
break;
default:
break;
}
//關閉郵件傳送檢視
[self dismissModalViewControllerAnimated:YES];
}
//傳送郵件的方法:
- (void)sendMail {
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
//設定委託
mail.mailComposeDelegate = self;
//設定郵件的主題
[mail setSubject:@"CSDN技術分享"];
//設定郵件的內容(兩種格式:一種是html,一種是純文字)
[mail setMessageBody:@"技術交流,多多指教" isHTML:NO];
//設定收件人
NSArray *toRecipients = [NSArray arrayWithObjects:@"[email protected]",nil];
[mail setToRecipients:toRecipients];
//設定郵件附件為圖片
NSString *path = [[NSBundle mainBundle] pathForResource:@"one" ofType:@"jpg"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[mail addAttachmentData:myData mimeType:@"image/png" fileName:@"man"];
//設定郵件傳送內容
NSString *emailBody = @"CSDN部落格地址:http://blog.csdn.net/cc1991_/article/details/70158723";
[mail setMessageBody:emailBody isHTML:NO];
//郵件傳送的模態視窗
if ([MFMailComposeViewController canSendMail]) {
[self presentModalViewController:mail animated:YES];
}
}
//在需要發郵件的具體地方,呼叫傳送郵件的方法:
[self
sendMail];
相關推薦
iOS開發:APP撥打電話、發簡訊、發郵件功能
在iOS開發過程中,經常會用到點選公司簡介的電話號碼,會直接撥打電話;或者點選網址連結發郵件,點擊發簡訊按鈕直接發簡訊等,這些功能雖小,但很實用。 一、撥打電話功能: 通過app撥打電話有三種方式,具體程式碼如下所示: 1.直接跳轉到撥打電話介面,不彈出撥打電話提示框,打完
iOS開發:常用的UIView控制元件——UILabel、UITextField、UIButton
前面幾篇文章已經對iOS開發中比較基本的幾個檔案進行了瞭解,今天主要學習StoryBoard檔案和幾個常見的UI控制元件。 Storyboard功能是在iOS5開始新增的功能,一種新技術的出現大多是為了彌補舊技術的不足,而在storyboard之前iOS 開發設計介面是使用nib檔案(xib
iOS開發:App橫豎屏設定問題
在iOS開發中,難免會遇到關於手機螢幕是否切換橫豎屏的問題,比如一個App整體的介面都需要豎屏顯示,那麼只用在Xcode裡面的General裡面的Deployment Info裡面把橫豎屏選項勾選去掉即
iOS開發:App國際化配置過程
在iOS開發過程中難免會遇到App要設定別的國家的語言,這就設計到國際化配置,那麼本篇博文就來講講App怎麼快速進行國際化配置。App語言國際化,也叫語言本地化,根據使用者使用的作業系統的語言設定,自動將App的語言設定成和使用者使用的作業系統的語言一致的語言
iOS內嵌WKWebView撥打電話、發簡訊、發郵件沒反應
iOS內嵌WKWebView撥打電話沒反應 <a href="tel:13112345678">撥打號碼</a> 內嵌H5的傳送簡訊,打電話,傳送郵件程式碼的處理 實現
iOS開發筆記之跳轉QQ聊天頁、跳轉微信、應用內撥打電話
NSURL *url; // QQ url = [NSURL URLWithString:[NSString stringWithFormat:@"mqq://im/chat?chat_type=wpa&uin=%@&version=1&src_typ
iOS開發:第一個iOS程式分析——AppDelegate.h檔案和檢視View、檢視控制器ViewController
在上一篇文章iOS開發:第一個iOS程式分析——代理,生命週期函式中主要介紹了iOS使用Objective-C開發的兩個主要檔案main.m和AppDelegate.m和控制程式生命週期的函式,接下來將介紹另外兩個檔案:AppDelegate.h檔案、UIViewController.m檔案和i
OCiOS開發:發簡訊、發郵件、打電話及搖一搖實現
簡介 在iOS開發中,可能會用到發簡訊、發郵件、打電話及搖一搖等功能,比如在應用程式的‘關於’介面,我們可能會留下電話號碼或郵箱等聯絡方式,為了方便使用者直接在應用程式中做操作,提升使用者體驗,我們會設計一些互動動作,讓使用者輕鬆的去發簡訊、打電話或發郵件等。
APP撥打電話&發簡訊&發郵件
在移動開發中我們會經常需要呼叫手機的撥打電話功能、發簡訊功能和發郵件功能,以下是我總結的方法://1.打電話 //方法1 最常用方法 NSURL *telUrl = [NSURL URLWithString:"tel://13161906451"]; UIWebView
iOS開發:旋轉、縮放、平移
一、建立一個UIView #import "ViewController.h" @interface ViewController () @property (nonatomic, strong)
iOS開發:2017蘋果APP上架後處於正在稽核狀態下,修改版本資訊或者下架版本的方法
在iOS開發過程中,打包上傳APP的時候,會遇到當你提交版本成功之後,正在稽核的時候,你想起來有問題沒改,或者這個版本需要下架,那麼怎麼操作呢,其實很簡單,具體做法下面給你一一道來。 APP正在處於稽
IOS開發:自己開發的APP在真機上執行測試的設定
1 點開Xcode cmd+,開啟系統偏好設定第二個圖示Accounts 新增自己手機註冊用的APPID 2 Xcode----Build Setting ----Packaging----Product Bundle Identifier 設定為空
iOS開發:2017 蘋果APP上架更新應用版本注意事項及APP版本迭代步驟方法
前幾天蘋果剛出臺新的政策協議,警告禁止使用APP熱更新,然後就收到蘋果發的警告郵件,然後並沒有在意,直到今天需要更新之前上架應用版本,才發現了問題。如果你的開發者賬號已經同意了蘋果開發者官網的最新協議
iOS開發:viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear
iOS檢視控制物件生命週期包括:init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear、vie
IOS開發-提升app性能的25條建議和技巧
contents oar profile 討論 遊戲開發 when plist 數據庫 formats 前言 這篇文章介紹了作者開發工作中總結的25個iOS開發ti
iOS開發:UILabel字號根據屏幕縮放
control after call git 步驟 obj gin begin follow 場景: 假設我們有這樣一個需求,iPhone 6(屏幕寬度為375pt)上的設計圖上的字號為17pt,iPhone 6 Plus上的字號根據屏幕寬度縮放,即字號為(17pt x 4
iOS 開發:Method Swizzling
是個 不足 沒有 int from ios 開發 解決方案 它的 nslog iOS 開發之Method Swizzling 前言 如果你還不知道什麽是Method Swizzling,你可以看看NSHipster 的文章 ,我簡單介紹一下,method swizzling
iOS 開發: 解決Xcode7.3 不能自動索引標頭檔案,檔名等問題
iOS 開發: 解決Xcode7.3 不能自動索引標頭檔案,檔名,程式碼補全等問題 解決方案: 開啟Xcode –> Target –> BuildSettings –> Apple LLVM 7.1 -Language-Objective C 下面的 Weak
iOS 開發:CocoaPods 安裝及問題 ERROR: Error installing cocoapods: activesupport requires Ruby version>=2.2.2
iOS 開發:CocoaPods 安裝以及 ERROR: Error installing cocoapods: activesupport requires Ruby version >= 2.2.2. 今天用新的Mac筆記本安裝coco
iOS開發:UITableview的多選功能實現
一、 先看效果: 最近專案中要運用即時通訊實現群組功能, 在建立群時需要選擇新增多個成員: 二、思路: 第一次點選cell選中, 再次點選取消選中; 三、方法: 只需要設定兩個屬性, 操作兩個方法即可; 1、UITableview 自帶多選功能: //允許多選 _