亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Swift > 正文

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

2020-03-09 17:41:52
字體:
來源:轉載
供稿:網友

前言

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

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

2.提供系統郵件反饋通道

3.調取系統分享功能分享應用

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

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

一、跳轉到AppStore

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

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

swift,跳轉,appstore

二、郵件反饋功能

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

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

//郵件發送函數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}

再需要添加郵件系統提示和郵件發送檢測。

//郵件系統提示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){}}//郵件發送檢測func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { switch result.rawValue { case MFMailComposeResult.cancelled.rawValue: print("取消發送") case MFMailComposeResult.sent.rawValue: print("發送成功") default: break } self.dismiss(animated: true, completion: nil)}

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

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

swift,跳轉,appstore

三、系統分享功能

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

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")})

swift,跳轉,appstore

四、打開某些網址

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

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

swift,跳轉,appstore

例如在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 = 1self.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 }}

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

總結

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


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99青青精品免费观看| 久久视频国产精品免费视频在线| 国产精品免费小视频| 国内精品久久久久久中文字幕| 国产精品久久久久久av下载红粉| 国产精品男女猛烈高潮激情| 亚洲在线视频福利| 亚洲精品第一页| 色妞欧美日韩在线| 91国产精品电影| 69久久夜色精品国产69| 欧美大奶子在线| 一个人看的www久久| 日韩欧美精品中文字幕| 91亚洲精品视频| 久久国产精品影视| 日韩av在线网站| 在线观看日韩专区| 久久久久久18| 国产精品久久久久久久9999| 日韩久久免费电影| 成人免费观看49www在线观看| 久久中文字幕一区| 亚洲天堂男人的天堂| 欧美成人午夜视频| 欧美专区中文字幕| 国产一区玩具在线观看| 国产欧美久久久久久| 国产精品18久久久久久首页狼| 伊人激情综合网| 久久人人97超碰精品888| 久久av在线播放| 欧美激情久久久| 亚洲欧洲xxxx| 日韩欧美黄色动漫| 日韩精品视频免费| 美日韩精品视频免费看| 国产一区二区三区精品久久久| 在线精品高清中文字幕| 日日狠狠久久偷偷四色综合免费| 久久亚洲欧美日韩精品专区| 亚洲国产成人精品电影| 久久69精品久久久久久久电影好| 日韩小视频在线| 午夜精品久久久久久久久久久久久| 精品一区二区三区四区| 亚洲va久久久噜噜噜久久天堂| 国产精品国产三级国产aⅴ浪潮| 视频直播国产精品| 国产精品老女人视频| 亚洲欧美另类自拍| 成人综合网网址| 91精品视频播放| 欧美一级视频一区二区| 亚洲欧美精品一区| 中文字幕久热精品视频在线| 国产精品激情av电影在线观看| 精品久久久久久久久久久久| 欧美—级a级欧美特级ar全黄| 国产精品99久久久久久久久久久久| 精品国产91久久久久久老师| 亚洲区中文字幕| 欧美野外wwwxxx| 97色在线视频观看| 亚洲激情久久久| 亚洲黄色有码视频| 国产91精品在线播放| 久久天天躁狠狠躁夜夜躁| 亚洲欧美精品中文字幕在线| 一个色综合导航| 色中色综合影院手机版在线观看| 欧美激情在线播放| 国产精品久久久久久久av电影| 国产精品亚洲欧美导航| 欧美成年人视频网站| 欧美在线观看日本一区| 日韩精品极品毛片系列视频| 成人av番号网| 日韩大片在线观看视频| 中文字幕亚洲图片| 91国在线精品国内播放| 高清视频欧美一级| 亚洲xxxx做受欧美| 午夜精品一区二区三区在线播放| 国产精品视频精品视频| 日韩中文字幕在线精品| 草民午夜欧美限制a级福利片| 亚洲欧美中文日韩v在线观看| 成人网在线视频| 成人免费淫片视频软件| 欧美亚洲成人xxx| 国语自产精品视频在免费| 亚洲欧美中文另类| 97在线观看视频国产| 亚洲视频999| 亚洲视频在线免费观看| 国产成人啪精品视频免费网| 国产乱人伦真实精品视频| 亚洲国产一区二区三区四区| 午夜精品久久久久久久男人的天堂| 精品少妇一区二区30p| 国产精品都在这里| 国产视频在线一区二区| 高潮白浆女日韩av免费看| 中文字幕欧美专区| 亚洲tv在线观看| 国产精品成人播放| 精品伊人久久97| 国产成人精品一区二区| 国产91色在线| 8050国产精品久久久久久| 欧美大胆在线视频| 亚洲经典中文字幕| 亚洲欧洲偷拍精品| 久久6免费高清热精品| 伊人伊人伊人久久| 在线日韩第一页| 亚洲精品国产拍免费91在线| 精品久久久久久久久久国产| 久久久亚洲精选| 国产精品成人va在线观看| 亚洲欧美精品suv| 国产精品亚洲自拍| 久久亚洲精品中文字幕冲田杏梨| 国内精品免费午夜毛片| 亚洲深夜福利视频| 精品日韩中文字幕| 北条麻妃99精品青青久久| 欧美成人免费大片| 97久久精品在线| 成人妇女淫片aaaa视频| 国产精品看片资源| 中文字幕av日韩| 精品久久久久久久久中文字幕| 在线国产精品播放| 伊人精品在线观看| 欧美大荫蒂xxx| 国产精品久久久久久超碰| 最近中文字幕mv在线一区二区三区四区| 亚洲999一在线观看www| 91在线免费看网站| 久久男人资源视频| 国产日韩亚洲欧美| 亚洲精品国产欧美| 理论片在线不卡免费观看| 欧美午夜精品久久久久久浪潮| 亚洲精品在线不卡| 日韩免费精品视频| 成人动漫网站在线观看| 国产精品一区二区三区久久| 91福利视频在线观看| 久久久精品影院| 蜜月aⅴ免费一区二区三区| **欧美日韩vr在线| 午夜精品久久久久久久99黑人| 精品久久中文字幕| 欧美性猛交xxxx免费看久久久| 精品中文字幕在线观看| 国产成人黄色av| 欧美激情xxxx| 久久成人综合视频| 日韩欧美视频一区二区三区| 国产精品美女av| 亚洲欧美制服综合另类|