Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈
生活随笔
收集整理的這篇文章主要介紹了
Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
通過調(diào)用微信提供的API接口,我們可以很方便的在應(yīng)用中發(fā)送消息給微信好友,或者分享到朋友圈。在微信開發(fā)平臺(tái)(https://open.weixin.qq.com)里,提供了詳細(xì)的說明文檔和樣例。但由于提供的樣例是使用Objective-C寫的,所以這邊我寫了個(gè)Swift版的樣例。
1,實(shí)現(xiàn)的功能 (1)可以發(fā)送各種類型的消息給好友,也可以分享到朋友圈 (2)發(fā)送的內(nèi)容類型包括:純文本,圖片,鏈接,音樂,視頻,gif表情,非gif表情,文件
2,效果圖如下 ??
??
3,注意事項(xiàng): (1)該樣例必須連接手機(jī)進(jìn)行真機(jī)調(diào)試 (2)還需要到微信開發(fā)平臺(tái)注冊應(yīng)用id,下面代碼里會(huì)用到(如果不注冊,隨便起個(gè)id來調(diào)試也沒什么問題,就是收到消息下方會(huì)顯示“未審核應(yīng)用”)
4,詳細(xì)步驟 (1)首先把微信SDK資源庫拖入到項(xiàng)目中來(整個(gè)Resources文件夾)
(2)引入WXApi.h這個(gè)頭文件
(3)編寫代碼
--- AppDelegate.swift ---
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { ????var window: UIWindow? ????func application(application: UIApplication, ????????didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { ????????// 注冊app(這里隨便取個(gè)名字) ????????WXApi.registerApp("hangge_appid") ????????return true ????} ????func applicationWillResignActive(application: UIApplication) { ????} ????func applicationDidEnterBackground(application: UIApplication) { ????} ????func applicationWillEnterForeground(application: UIApplication) { ????} ????func applicationDidBecomeActive(application: UIApplication) { ????} ????func applicationWillTerminate(application: UIApplication) { ????} } |
--- ViewController.swift ---
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | import UIKit class ViewController: UIViewController { ????//發(fā)送給好友還是朋友圈(默認(rèn)好友) ????var _scene = WXSceneSession.value ????? ????override func viewDidLoad() { ????????super.viewDidLoad() ????} ????? ????override func didReceiveMemoryWarning() { ????????super.didReceiveMemoryWarning() ????} ????? ????//切換發(fā)送給好友還是朋友圈 ????@IBAction func changeScene(sender: UISegmentedControl) { ????????if sender.selectedSegmentIndex == 0 { ????????????_scene = WXSceneSession.value ????????}else{ ????????????_scene = WXSceneTimeline.value ????????} ????} ????? ????//發(fā)送純文本 ????@IBAction func sendTextContent(sender: AnyObject) { ????????var req = SendMessageToWXReq() ????????req.bText = true ????????req.text = "hangge.com 做最好的開發(fā)者知識(shí)平臺(tái)。" ????????req.scene = _scene ????????WXApi.sendReq(req) ????} ????? ????//發(fā)送圖片 ????@IBAction func sendImageContent(sender: AnyObject) { ????????var message =? WXMediaMessage() ????????? ????????//發(fā)送的圖片 ????????var filePath =? NSBundle.mainBundle().pathForResource("image", ofType: "jpg") ????????var image = UIImage(contentsOfFile:filePath!) ????????var imageObject =? WXImageObject() ????????imageObject.imageData = UIImagePNGRepresentation(image) ????????message.mediaObject = imageObject ????????? ????????//圖片縮略圖 ????????var width = 240.0 as CGFloat ????????var height = width*image!.size.height/image!.size.width ????????UIGraphicsBeginImageContext(CGSizeMake(width, height)) ????????image!.drawInRect(CGRectMake(0, 0, width, height)) ????????message.setThumbImage(UIGraphicsGetImageFromCurrentImageContext()) ????????UIGraphicsEndImageContext() ????????? ????????var req =? SendMessageToWXReq() ????????req.bText = false ????????req.message = message ????????req.scene = _scene ????????WXApi.sendReq(req) ????} ????? ????//發(fā)送鏈接 ????@IBAction func sendLinkContent(sender: AnyObject) { ????????var message =? WXMediaMessage() ????????? ????????message.title = "歡迎訪問 hangge.com" ????????message.description = "做最好的開發(fā)者知識(shí)平臺(tái)。分享各種編程開發(fā)經(jīng)驗(yàn)。" ????????message.setThumbImage(UIImage(named:"apple.png")) ????????? ????????var ext =? WXWebpageObject() ????????ext.webpageUrl = "http://hangge.com" ????????message.mediaObject = ext ????????? ????????var req =? SendMessageToWXReq() ????????req.bText = false ????????req.message = message ????????req.scene = _scene ????????WXApi.sendReq(req) ????} ????? ????//發(fā)送音樂 ????@IBAction func sendMusicContent(sender: AnyObject) { ????????var message =? WXMediaMessage() ????????? ????????message.title = "一無所有" ????????message.description = "崔健" ????????message.setThumbImage(UIImage(named:"apple.png")) ????????? ????????var ext =? WXMusicObject() ????????ext.musicUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A22E4B880E697A0E68980E69C89222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156342F4141414130414141414E5430577532394D7A59344D7A63774D4C6735586A4C517747335A50676F47443864704151526643473444442F4E653765776B617A733D2F31303130333334372E6D34613F7569643D3233343734363930373526616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31342E71716D757369632E71712E636F6D2F33303130333334372E6D7033222C226E657454797065223A2277696669222C22736F6E675F416C62756D223A22E4B880E697A0E68980E69C89222C22736F6E675F4944223A3130333334372C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E5B494E581A5222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D313574414141416A41414141477A4C36445039536A457A525467304E7A38774E446E752B6473483833344843756B5041576B6D48316C4A434E626F4D34394E4E7A754450444A647A7A45304F513D3D2F33303130333334372E6D70333F7569643D3233343734363930373526616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D" ????????ext.musicDataUrl = "http://stream20.qqmusic.qq.com/32464723.mp3" ????????message.mediaObject = ext ????????? ????????var req =? SendMessageToWXReq() ????????req.bText = false ????????req.message = message ????????req.scene = _scene ????????WXApi.sendReq(req) ????} ????? ????//發(fā)送視頻 ????@IBAction func sendVideoContent(sender: AnyObject) { ????????var message =? WXMediaMessage() ????????message.title = "喬布斯訪談" ????????message.description = "餓著肚皮,傻逼著。" ????????message.setThumbImage(UIImage(named:"apple.png")) ????????? ????????var ext =? WXVideoObject() ????????ext.videoUrl = "http://v.youku.com/v_show/id_XNTUxNDY1NDY4.html" ????????message.mediaObject = ext ????????? ????????var req =? SendMessageToWXReq() ????????req.bText = false ????????req.message = message ????????req.scene = _scene ????????WXApi.sendReq(req) ????} ????? ????//發(fā)送非gif格式的表情 ????@IBAction func sendNonGifContent(sender: AnyObject) { ????????var message =? WXMediaMessage() ????????message.setThumbImage(UIImage(named:"res5thumb.png")) ????????? ????????var ext =? WXEmoticonObject() ????????var filePath = NSBundle.mainBundle().pathForResource("res5", ofType: "jpg") ????????ext.emoticonData = NSData(contentsOfFile:filePath!) ????????message.mediaObject = ext ????????? ????????var req =? SendMessageToWXReq() ????????req.bText = false ????????req.message = message ????????req.scene = _scene ????????WXApi.sendReq(req) ????} ????? ????//發(fā)送gif格式的表情 ????@IBAction func sendGifContent(sender: AnyObject) { ????????var message =? WXMediaMessage() ????????message.setThumbImage(UIImage(named:"res6thumb.png")) ????????? ????????var ext =? WXEmoticonObject() ????????var filePath = NSBundle.mainBundle().pathForResource("res6", ofType: "gif") ????????ext.emoticonData = NSData(contentsOfFile:filePath!) ????????message.mediaObject = ext ????????? ????????var req =? SendMessageToWXReq() ????????req.bText = false ????????req.message = message ????????req.scene = _scene ????????WXApi.sendReq(req) ????} ????? ????//發(fā)送文件 ????@IBAction func sendFileContent(sender: AnyObject) { ????????var message =? WXMediaMessage() ????????message.title = "ML.pdf" ????????message.description = "Pro CoreData" ????????message.setThumbImage(UIImage(named:"apple.png")) ????????? ????????var ext =? WXFileObject() ????????ext.fileExtension = "pdf" ????????var filePath = NSBundle.mainBundle().pathForResource("ML", ofType: "pdf") ????????ext.fileData = NSData(contentsOfFile:filePath!) ????????message.mediaObject = ext ????????? ????????var req =? SendMessageToWXReq() ????????req.bText = false ????????req.message = message ????????req.scene = _scene ????????WXApi.sendReq(req) ????} } |
5,源碼下載:WeiXinShare.zip
轉(zhuǎn)載于:https://www.cnblogs.com/Free-Thinker/p/4843326.html
總結(jié)
以上是生活随笔為你收集整理的Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: diamond升级IP,覆盖的时候报错
- 下一篇: 在im4java中使用GraphicsM