1. 程式人生 > >iOS 打電話 ,發郵件,發短息

iOS 打電話 ,發郵件,發短息


1.發簡訊
實現打電話的功能,主要二種方法,下面我就分別說說它們的優缺點。
1.1.發簡訊(1)——URL 
// 直接撥號,撥號完成後會停留在通話記錄中
1、方法:
NSURL *url = [NSURL URLWithString:@"sms://10010"];
[[UIApplication sharedApplication] openURL:url];
2、優點:
–簡單
3、缺點:
–不能指定簡訊內容,而且不能自動回到原應用

1.2發簡訊(2)——MessageUI框架       

如果自定義簡訊,需要使用一個框架MessageUI。

優點
 1. 從應用出去能回來
 2. 可以多人
 3. 可以自定義訊息,訊息支援HTML格式的


而且如果在蘋果系統中,如果彼此的手機都是iOS裝置,並且開通了iMessage功能,彼此之間的簡訊是走網路通道,而不走運營商的通道!

- (void)msg2
{
    // 判斷使用者裝置能否傳送簡訊
    if (![MFMessageComposeViewController canSendText]) {
        return;
    }
    
    // 1. 例項化一個控制器
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    
    // 2. 設定簡訊內容
    // 1) 收件人
    controller.recipients = @[@"10010", @"10086"];
    
    // 2) 簡訊內容
    controller.body = @"給您拜個晚年,祝您晚年快樂!";
    
    // 3) 設定代理
    controller.messageComposeDelegate = self;

    // 3. 顯示簡訊控制器
    [self presentViewController:controller animated:YES completion:nil];
}
記得發完簡訊記得呼叫代理方法關閉視窗
#pragma mark 簡訊控制器代理方法
/**
 簡訊傳送結果
 
 MessageComposeResultCancelled,     取消
 MessageComposeResultSent,          傳送
 MessageComposeResultFailed         失敗
 */
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
    NSLog(@"%d", result);
    
    // 在面向物件程式開發中,有一個原則,誰申請,誰釋放!
    // *** 此方法也可以正常工作,因為系統會將關閉訊息傳送給self
//    [controller dismissViewControllerAnimated:YES completion:nil];
    
    // 應該用這個!!!
    [self dismissViewControllerAnimated:YES completion:nil];
}

2.發郵件

- (void)sendmail
{
    // 1. 先判斷能否傳送郵件
    if (![MFMailComposeViewController canSendMail]) {
        // 提示使用者設定郵箱
        return;
    }
    
    // 2. 例項化郵件控制器,準備傳送郵件
    MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
    
    // 1) 主題 xxx的工作報告
    [controller setSubject:@"我的工作報告"];
    // 2) 收件人
    [controller setToRecipients:@[@"[email protected]"]];
    
    // 3) cc 抄送
    // 4) bcc 密送(偷偷地告訴,打個小報告)
    // 5) 正文
    [controller setMessageBody:@"這是我的<font color=\"blue\">工作報告</font>,請審閱!<BR />P.S. 我的頭像牛X嗎?" isHTML:YES];
    
    // 6) 附件
    UIImage *image = [UIImage imageNamed:@"頭像1.png"];
    NSData *imageData = UIImagePNGRepresentation(image);
    // 1> 附件的二進位制資料
    // 2> MIMEType 使用什麼應用程式開啟附件
    // 3> 收件人接收時看到的檔名稱
    // 可以新增多個附件
    [controller addAttachmentData:imageData mimeType:@"image/png" fileName:@"頭像.png"];
    
    // 7) 設定代理
    [controller setMailComposeDelegate:self];
    
    // 顯示控制器
    [self presentViewController:controller animated:YES completion:nil];
}
同樣要記得發完郵件記得呼叫代理方法關閉視窗
#pragma mark - 郵件代理方法
/**
 MFMailComposeResultCancelled,      取消
 MFMailComposeResultSaved,          儲存郵件
 MFMailComposeResultSent,           已經發送
 MFMailComposeResultFailed          傳送失敗
 */
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    // 根據不同狀態提示使用者
    NSLog(@"%d", result);
    
    [self dismissViewControllerAnimated:YES completion:nil];
}
3.打電話
打電話有三種方式可以實現,優缺點也各不同
3.1.打電話不回引用
- (void)tel1
{
    // 直接撥號,撥號完成後會停留在通話記錄中
    NSURL *url = [NSURL URLWithString:@"tel://10010"];
    
    [[UIApplication sharedApplication] openURL:url];
}
3.2.出去打電話然後回來
- (void)tel2
{
    // 但是:telprompt協議屬於蘋果的私有協議,一旦程式中使用了此協議,程式無法上架
    // 針對越獄的機器開發的系統,可以使用此協議
    NSURL *url = [NSURL URLWithString:@"telprompt://10010"];
    
    [[UIApplication sharedApplication] openURL:url];
}
3.3藉助UIWebView打電話(會回來)
一般都是用這種,解決了不越獄的問題。
- (void)tel3
{
    // 提示:不要將webView新增到self.view,如果新增會遮擋原有的檢視
    // 懶載入
    if (_webView == nil) {
        _webView = [[UIWebView alloc] init];
    }
    NSLog(@"%p", _webView);
    
//    _webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
//    [self.view addSubview:_webView];
    
    NSURL *url = [NSURL URLWithString:@"tel://10010"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    [_webView loadRequest:request];
}

相關推薦

iOS 打電話 郵件

1.發簡訊實現打電話的功能,主要二種方法,下面我就分別說說它們的優缺點。1.1.發簡訊(1)——URL // 直接撥號,撥號完成後會停留在通話記錄中1、方法: NSURL *url = [NSURL URLWithString:@"sms://10010"]; [[UIAp

html a 標籤實現打電話簡訊郵件查地圖功能

<html>     <head>         <meta charset="utf-8">         <title></title>         <style>         a{di

html,js打電話撥號簡訊郵件啟用Android市場地圖定位GP

如果需要在移動瀏覽器中實現撥打電話,呼叫sms,傳送email等功能,移動手機WEB頁面(HTML5)Javascript提供的介面是一個好辦法。採用url連結的方式,實現在Safari ios,Android 瀏覽器,webos瀏覽器,塞班瀏覽器,IE,Operamini等

阿裏雲服務器不能郵件禁用25端口的解決辦法

utf not red view 成功 提示 password imap erro 前陣子剛剛買了個阿裏雲服務器,在做發送郵件功能時,發現本來在本地測試沒問題的功能,在服務器上連接超時。 後來發現是阿裏雲將25端口禁用了(“坑!當然也有其道理”),大概2016年9月後買

Mac下命令行郵件【搭配php(shell_exec...)等腳本語言輕松郵件告別各種依賴庫】

-1 mtp ima .cn 令行 輕量 -- 語言 郵件   用到的是msmtp,一個smtp客戶端,比sendmail,postfix更加輕量。用自己的QQ郵箱(163...)發郵件的話,很適合。   Mac下安裝很簡單,一句話:brew install msmtp  

DAY6 - os補充操作郵件數據庫操作寫excel加密操作

def l數據庫 ron 字符串類 hash day 語句 概念 切換 1.Map-循環幫你調用函數 **生成器的概念** 輸出為: map返回的就是一個生成器 2.filter-把函數處理結果為false的結果過濾掉 比較map和filter的輸出

python 郵件帶附件中文

    # !/usr/bin/python # -*- coding: UTF-8 -*- from email import encoders from email.mime.base import MIMEBase from email.mime.multipa

阿里雲25號埠被封換465埠django郵件user 2 python

連結: 參考方法. 我的程式碼,在utils中更改 subject = render_to_string(subject_template, context) # email subject *must not* contain newlines

請給我郵件不要發微信

type -o 是的 強調 隱私 ESS 51cto 微信 多個 最近,與新客戶聯系比較多,都被要求加微信, 好像沒有人關心你的名片,更沒有人關心你的郵箱是什麽了。正像很多國人寧願為了一點點便利或優惠,就願意犧牲自己的手機號碼等隱私去註冊某項自己也許永遠都不會用第二次的服務

關於JavaMail 郵件本地傳送成功linux伺服器上傳送連線超時問題的解決方案

伺服器上報錯資訊        send mail err:Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn’t connect

用telnet測試給qq郵箱郵件中途可能騰訊要你開啟smtp伺服器

注意下面綠色為你要在cmd端輸入的內容 (第1步)telnet smtp.qq.com 25 220 smtp.qq.com Esmtp QQ Mail Server (第2步)helo   192.168.20.11//與qq伺服器握手:這個192.168.20.11是

springboot-mail郵件不需要郵件伺服器

很簡單 步驟走起-> 1.需要一個郵箱賬號,我以163郵箱為例,先開啟第三方服務後獲得密碼,後面用來郵箱登入 2.加入mail 依賴 3.properties配置賬號和第三方服務密碼(不是郵箱密碼,是第一步中的密碼) 4.簡單看下專案結構:

網易第三方郵件過期教程害死人

import smtplib from email.mime.text import MIMEText # 第三方 SMTP 服務 mail_host = "smtp.163.com" # SMTP伺服器 mail_user = "username" # 使用者名稱 m

解決WordPress不能郵件WordPress 無法傳送郵件

解決WordPress不能發郵件,WordPress 無法傳送郵件,不得不說WordPress這個問題真的很煩人,研究了一下午發現不能發郵件的問題無非以下幾種! 1、系統本身問題,這個直接裝個外掛即可 2、主機問題,排查是否禁用了郵件函式 3、個人問題,檢查郵件的密碼什麼的是否正確 4、變態問題,這個問題困擾

python郵件 python郵件

python發郵件 python發郵件需要掌握兩個模組的用法,smtplib和email,這倆模組是python自帶的,只需import即可使用。smtplib模組主要負責傳送郵件,email模組主要負責構造郵件。 smtplib模組主要負責傳送郵件:是一個傳送郵件的動作,連線郵箱伺服器

知識共享平臺Quora遭受資料洩露使用者名稱電子郵件加密密碼暴露

Quora宣佈發生了一起資料洩露事件,導致大約1億使用者的個人資訊遭到洩露,這些使用者的個人資訊包括姓名、電子郵件地址、加密密碼和直接資訊。 “我們是在11月30日第一次知道這個問題的。在瞭解到這個問題後,我們立即展開了全面的調查和補救工作。 Quora發現,試圖進入其計算系統的第三方洩露了數量不定的使用

Python Flask傳送郵件Flask-Mail郵件擴充套件

安裝 Flask-Mail : pip install Flask-Mail   demo.py(傳送郵件): from flask import Flask from flask_mail import Mail, Message # 匯入

iOS-打電話信、郵件【指定QQ用戶送QQ消

ios 郵件內容 取消 bar 內容 tex 是否 ext else 1.發短信 頭文件 #import <MessageUI/MessageUI.h> 頭部代理 @interface ViewController ()<MFMessageCompo

IOS 開發呼叫打電話簡訊開啟網址

1、呼叫 自帶mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://[email protected]"]]; 2、呼叫 電話phone [[UIApplication sharedA

手持移動端特殊連結:打電話簡訊郵件

如果需要在移動瀏覽器中實現撥打電話,呼叫sms,傳送email等功能,移動手機WEB頁面(HTML5)Javascript提供的介面是一個好辦法。 採用url連結的方式,實現在Safari ios,Android 瀏覽器,webos瀏覽器,塞班瀏覽器,IE,Operam