swift新浪微博分享

两种实现方法 

     1.集成新浪SDK实现如果你的app需要支持新浪微博登录等其他功能,建议使用方法1

     2.使用ios系统原生的分享方式,比较简单,但是需要在iphone设置里添加账号密码,有时候不好添加


第一种 方式:

前提:在新浪微博开放平台,注册app获取到appid和serect

注册的时候授权回调页: ios最好填写默认的https://api.weibo.com/oauth2/default.html

1.进入官网链接到github下载SDK

2.打开SDK文档参考

3.libWebSDK整个文件拖入到工程中

4.Other-Linker-flags 里边设置-Objc

5.添加需要支持的库

QuartzCore.framework      ImageIO.framework     SystemConfiguration.framework

Security.framework    CoreTelephony.framework    CoreText.framework   CoreGraphics.framework    libz.dylib     libsqlite3.dylib

6.在info里边配置白名单 还有http设置   ATS  为yes  

swift新浪微博分享_第1张图片

7.配置urlScheme 填写wb+”appKey”

8.设置桥接文件  导入头文件

#import "WeiboSDK.h"

9.上代码了

一般分享最多3个  类型  文本  图片  链接

大概的步骤如下: 但是具体的判断大家自己做一下


在app代理里边

注册

WeiboSDK.registerApp(appkey)

设置weibo代理

func application(_ application: UIApplication, handleOpen url: URL) -> Bool {

return WeiboSDK.handleOpen(url, delegate: self)

}

遵守代理协议

class AppDelegate: UIResponder, UIApplicationDelegate, WeiboSDKDelegate {  }

实现代理方法

func didReceiveWeiboRequest(_ request: WBBaseRequest!) {   }

func didReceiveWeiboResponse(_ response: WBBaseResponse!) {  }


封装一个类专门来写分享的代码

//判断是否安装  没有安装就提醒安装

WeiboSDK.isWeiboAppInstalled()

//整个消息类

letmsg =WBMessageObject()

//文本类型

msg.text=""

//图片类型

letimg =WBImageObject()

//大小不能超过10M

img.imageData=UIImageJPEGRepresentation(UIImage(named:"QQ")!,1)

//网页

letweb =WBWebpageObject()

//不能为空且长度不能超过255

web.webpageUrl=""

//不能为空长度小于255,可与url一样,只要是唯一就可以了

web.objectID=""

web.description=""

web.title=""

//大小小于32k

web.thumbnailData=UIImageJPEGRepresentation(UIImage(named:"QQ")!,1)

msg.imageObject= img

msg.mediaObject= web

//请求类

if let req =WBSendMessageToWeiboRequest.request(withMessage: msg)as?WBSendMessageToWeiboRequest{

//发送请求

WeiboSDK.send(req)

}


第二种 方式:

//判断是否安装了新浪并绑定了账号密码

if !SLComposeViewController.isAvailable(forServiceType: SLServiceTypeSinaWeibo) { return    }

//创建控制器

guard let wbshare = SLComposeViewController(forServiceType: SLServiceTypeSinaWeibo) else { return }

//正文不可以大于120字

var txt = text

if txt.count > 115 {

let endIdx = text.endIndex

let inx = text.index(endIdx, offsetBy:115 - text.count)

txt = text.substring(to: inx) + "..."

}

//设置正文

wbshare.setInitialText(txt)

//设置图片

wbshare.add(img)

//设置url

if let url = URL(string: urlStr) {

wbshare.add(url)

}

//moda分享

present(wbshare, animated: true, completion: nil)

//监听结果

wbshare.completionHandler = { result in

if result == .cancelled {

print("取消分享")

}else if result == .done {

print("分享成功")

}

}

你可能感兴趣的:(swift新浪微博分享)