欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift如何為設置中心添加常用功能

 更新時間:2018年05月04日 08:35:45   作者:OneSwift  
這篇文章主要給大家介紹了關于Swift如何為設置中心添加常用功能的相關資料,包含了跳轉到AppStore、郵件反饋功能、系統(tǒng)分享功能以及打開某些網址等功能,需要的朋友可以參考借鑒,下面來一起看看吧

前言

在我們開發(fā)所有的應用中,通常會提供包含多項功能的設置中心。這些功能可以包括,給用戶推薦自己的其他作品、邀請用戶好評、提供反饋通道、邀請用戶分享應用、打開官網或某些其他地址。 這些功能雖然用戶使用頻率不高,但對于應用的設置中心是必備的。

1.跳轉到AppStore,邀請好評或推薦其他應用

2.提供系統(tǒng)郵件反饋通道

3.調取系統(tǒng)分享功能分享應用

4.在應用內打開網頁,實現(xiàn)官方網址、應用更新說明或打開其他網址

通常設置中心由TableView或CollectionView創(chuàng)建,在didSelectRowAt中添加不同的點擊反饋即可,這里就不再描述。

一、跳轉到AppStore

應用內跳轉到AppStore可以通過設置對應的應用地址即可,因此可以跳轉到其他應用界面實現(xiàn)推薦應用,也可以跳轉到自身應用的地址邀請用戶好評。OneX系列產品都擁有推薦和評價的入口,兩種入口的實現(xiàn)方式也都是一樣的。 在不同的情況下我們只需要改變urlString末尾的ID即可,當讓也可以封裝在某一個函數(shù)中,通過參數(shù)進行改變具體的跳轉地址。

let urlString = "itms-apps://itunes.apple.com/app/id1250290965"
if let url = URL(string: urlString) {
 //根據(jù)iOS系統(tǒng)版本,分別處理
 if #available(iOS 10, *) {
 UIApplication.shared.open(url, options: [:],
     completionHandler: {
     (success) in
 })
 } else {
 UIApplication.shared.openURL(url)
 }
}

二、郵件反饋功能

第一,需要導入框架MessageUI.framework,在項目設置Build Phases的Link Binary With Libraries中添加MessageUI.framework。 第二,在使用郵件反饋功能的頁面文件中導入頭文件import MessageUI。 第三,給所在Controller加上協(xié)議MFMailComposeViewControllerDelegate。

完成以上步驟之后,我們就可以開始寫具體的使用代碼了。 發(fā)送反饋郵件時,為了方便我們收到郵件時辨別是用戶發(fā)來的反饋郵件,同時了解用戶的系統(tǒng)、版本等信息,我們在發(fā)送函數(shù)中設置好標題與默認正文。 mailComposeVC.setToRecipients中添加收件郵箱地址,mailComposeVC.setSubject中添加郵件標題,mailComposeVC.setMessageBody設置正文內容。

//郵件發(fā)送函數(shù)
func configuredMailComposeViewController() -> MFMailComposeViewController {

 let mailComposeVC = MFMailComposeViewController()
 mailComposeVC.mailComposeDelegate = self

 //獲取設備信息
 let deviceName = UIDevice.current.name
 // let deviceModel = UIDevice.current.model
 let systemVersion = UIDevice.current.systemVersion
 let deviceUUID = UIDevice.current.identifierForVendor?.uuidString

 //獲取APP信息
 let infoDic = Bundle.main.infoDictionary
 // 獲取App的版本號
 let appVersion = infoDic?["CFBundleShortVersionString"] ?? "appVersion"
 // 獲取App的build版本
 let appBuildVersion = infoDic?["CFBundleVersion"] ?? "appBuildVersion"
 // 獲取App的名稱
 let appName = infoDic?["CFBundleDisplayName"] ?? "OneClock"

 //設置郵件地址、主題及正文
 mailComposeVC.setToRecipients(["<xdehang@gmail.com>"])
 mailComposeVC.setSubject("OneScreen "+String(describing: appVersion)+" - "+NSLocalizedString("FeedBack Mail From", comment: "FeedBack Mail From")+" "+deviceName)

 let content:String = "\n \n \n \n Device:\(deviceName)\n System:\(systemVersion)\n App Version:\(String(describing: appVersion))"

 mailComposeVC.setMessageBody(NSLocalizedString("<Start To Write Mail>", comment: "<Start To Write Mail>")+content, isHTML: false)
 return mailComposeVC
}

再需要添加郵件系統(tǒng)提示和郵件發(fā)送檢測。

//郵件系統(tǒng)提示
func showSendMailErrorAlert() {
 let sendMailErrorAlert = UIAlertController(title: NSLocalizedString("Unable To Send", comment: "Unable To Send"), message: NSLocalizedString("Your device has not been set up, please set in the mail application and then try to send.", comment: "Your device has not been set up, please set in the mail application and then try to send."), preferredStyle: .alert)
 sendMailErrorAlert.addAction(UIAlertAction(title: NSLocalizedString("Confirm", comment: "Confirm action title"), style: .default) { _ in })
 self.present(sendMailErrorAlert, animated: true){}

}
//郵件發(fā)送檢測
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {

 switch result.rawValue {
 case MFMailComposeResult.cancelled.rawValue:
 print("取消發(fā)送")
 case MFMailComposeResult.sent.rawValue:
 print("發(fā)送成功")
 default:
 break
 }
 self.dismiss(animated: true, completion: nil)
}

最后我們在調用郵件反饋的地方,需要先判斷是否能夠發(fā)送,如果不能發(fā)送通過提示信息告訴用戶失敗原因,如果可以發(fā)送將成功調取發(fā)送窗口。 在需要郵件反饋的地方:

if MFMailComposeViewController.canSendMail() {
 //注意這個實例要寫在if block里,否則無法發(fā)送郵件時會出現(xiàn)兩次提示彈窗(一次是系統(tǒng)的)
 let mailComposeViewController = configuredMailComposeViewController()
 self.present(mailComposeViewController, animated: true, completion: nil)

} else {
 self.showSendMailErrorAlert()
}

三、系統(tǒng)分享功能

分享前,我們需要設置好分享的信息:標題、圖片、鏈接。

var webUrl:String = "https://itunes.apple.com/cn/app/id1355476695"
var urlTitle:String = "OneScreen"
var urlImage:UIImage = #imageLiteral(resourceName: "onescreen_icon")

這里使用了var,是為了在特殊情況下改變他們的值,具體的調用方式如下:

let shareVC:UIActivityViewController = UIActivityViewController(activityItems: [self.urlTitle,self.urlImage,self.webUrl], applicationActivities: nil)

self.present(shareVC, animated: true, completion: {
 print("shareVC success")
})

四、打開某些網址

打開網址可以實現(xiàn)“官方網址”、“應用更新說明”功能,更新說明我們可以通過更新Web內容快速高速用戶更新列表。如果你的應用需要比較多的教程,也可以通過網頁的形式展現(xiàn)。為了方便用戶反饋,我通常會增加一個微博入口,讓用戶打開微博地址快速與我聯(lián)系進行反饋。

這個功能我們需要創(chuàng)建一個承載網頁內容的Web頁面,因此需要先添加帶有WebView的Controller。 在其他頁面打開Web時,通過傳遞參數(shù)來告訴WebView具體呈現(xiàn)哪一個網址。

例如在OneDay的WebViewController中:

override func viewDidLoad() {
 super.viewDidLoad()

 // Do any additional setup after loading the view.
 switch webIndex {
 case 0:
  self.urlString = "https://weibo.com/bujidehang"
 case 1:
  self.urlString = "http://www.ohweonline.com/oneday"
 case 2:
  self.urlString = "http://www.ohweonline.com/oneday/updateCN.html"
 case 3:
  self.urlString = "http://www.ohweonline.com/oneday/updateEN.html"
 default:
  self.urlString = "http://www.ohweonline.com/oneday"
 }

 let urlobj = URL(string:self.urlString)
 let request = URLRequest(url:urlobj!)
 webView.loadRequest(request)
 print(webView.isLoading)
}

在設置頁面中,我們開始打開Web:

print("to webview")
self.webIndex = 1
self.performSegue(withIdentifier: "viewWebView", sender: self)

將WebIndex傳遞給WebViewController,以方便判斷具體的網址。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
 if segue.identifier == "viewWebView"{
  let dest = segue.destination as! WebViewController
  dest.webIndex = self.webIndex
 }
}

這樣就實現(xiàn)了所有相關網址的打開。實際在網頁加載頁面中還有一些特性和功能,將在下一期文章中詳細說明。 打開網址

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Swift3.0 GCD定時器的使用DEMO

    Swift3.0 GCD定時器的使用DEMO

    這篇文章主要介紹了Swift3.0 GCD定時器的使用,實現(xiàn)倒計時,UIDatePicker的使用, 仿寫一個活動倒計時的DEMO,需要的朋友可以參考下
    2017-02-02
  • Swift實現(xiàn)多個TableView側滑與切換效果

    Swift實現(xiàn)多個TableView側滑與切換效果

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)多個TableView側滑與切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 詳解Swift中的數(shù)據(jù)類型類型轉換

    詳解Swift中的數(shù)據(jù)類型類型轉換

    Swift中的類型轉換可以結合類的繼承等面向對象的編程特性來進行,本文中我們就來詳解Swift中的數(shù)據(jù)類型類型轉換,需要的朋友可以參考下
    2016-07-07
  • Swift快速集成下拉刷新和上拉加載更多示例代碼

    Swift快速集成下拉刷新和上拉加載更多示例代碼

    這篇文章主要介紹了Swift快速集成下拉刷新和上拉加載更多示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 淺析Swift中struct與class的區(qū)別(匯編角度底層分析)

    淺析Swift中struct與class的區(qū)別(匯編角度底層分析)

    這篇文章主要介紹了Swift中struct與class的區(qū)別 ,本文從匯編角度分析struct與class的區(qū)別,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉移到Swift過程介紹

    Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉移到Swift過程介紹

    這篇文章主要介紹了Objective-c代碼如何移植為Swift代碼,Objective-c代碼轉移到Swift過程介紹,需要的朋友可以參考下
    2014-07-07
  • Swift循環(huán)遍歷集合的方法總結分享

    Swift循環(huán)遍歷集合的方法總結分享

    SWIFT是蘋果于2014年WWDC發(fā)布的新開發(fā)語言,可與Objective-C*共同運行于Mac OS和iOS平臺,用于搭建基于蘋果平臺的應用程序。這篇文章主要給大家總結介紹了關于Swift循環(huán)遍歷集合的方法,如for-in循環(huán)、for循環(huán)以及基于塊的遍歷等方法,需要的朋友可以參考下。
    2017-03-03
  • swift中的@UIApplicationMain示例詳解

    swift中的@UIApplicationMain示例詳解

    這篇文章主要給大家介紹了關于swift中@UIApplicationMain的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • 深入講解Swift中的模式匹配

    深入講解Swift中的模式匹配

    在Swift中,一些模式已經被語言特性所吸收,你在使用Swift甚至察覺不出這類問題的存在,下面這篇文章主要給大家介紹了關于Swift中模式匹配的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-08-08
  • swift學習文檔(筆記)

    swift學習文檔(筆記)

    這篇文章主要介紹了學習swift的筆記,swift最近也比較熱,需要的朋友可以參考下
    2014-09-09

最新評論