iOS Social框架

现在很多应用都内置“社交分享”功能,可以将看到的新闻、博客、广告等内容分享到微博、微信、QQ、空间等,其实从iOS6.0开始苹果官方就内置了Social.framework专门来实现社交分享功能,利用这个框架开发者只需要几句代码就可以实现内容分享。下面就以一个分享到新浪微博的功能为例来演示Social框架的应用,整个过程分为:创建内容编辑控制器,设置分享内容(文本内容、图片、超链接等),设置发送(或取消)后的回调事件,展示控制器。

 

程序代码:

 1 //
 2 //  ViewController.m
 3 //  Social
 4 //
 5 //  Created by HO on 16/3/28.
 6 //  Copyright © 2016年 HO. All rights reserved.
 7 //
 8 
 9 #import "ViewController.h"
10 #import <Social/Social.h>
11 
12 @interface ViewController ()
13 
14 @end
15 
16 @implementation ViewController
17 
18 #pragma mark - UI事件
19 - (IBAction)shareClick:(id)sender {
20     [self shareTosina];
21 }
22 
23 #pragma mark 私有方法
24 - (void)shareTosina{
25     //检查新浪微博服务是否可用
26     if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
27         NSLog(@"新浪微博服务不可用.");
28         return;
29     }
30     //初始化内容编写控制器,注意这里指定分享类型为微博
31     SLComposeViewController * composeController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
32     //设置默认信息
33     [composeController setInitialText:@"标题:iOS Social框架 新浪微博分享测试 内容:顺手给我new一个对象技术博客"];
34     //添加图片
35     [composeController addImage:[UIImage imageNamed:@"1.png"]];
36     //添加链接
37     [composeController addURL:[NSURL URLWithString:@"http://www.cnblogs.com/HOYF/"]];
38     //设置发送完成后的回调事件
39     __block SLComposeViewController * composeControllerForBlock = composeController;
40     composeController.completionHandler = ^(SLComposeViewControllerResult result){
41         if (result == SLComposeViewControllerResultDone) {
42             NSLog(@"开始发送...");
43         }
44         [composeControllerForBlock dismissViewControllerAnimated:YES completion:nil];
45     };
46     //显示编辑视图
47     [self presentViewController:composeController animated:YES completion:nil];
48 }
49 
50 
51 
52 - (void)viewDidLoad {
53     [super viewDidLoad];
54     // Do any additional setup after loading the view, typically from a nib.
55 }
56 
57 - (void)didReceiveMemoryWarning {
58     [super didReceiveMemoryWarning];
59     // Dispose of any resources that can be recreated.
60 }
61 
62 @end

运行效果:

发送成功后:

在这个过程中开发人员不需要知道新浪微博的更多分享细节,Social框架中已经统一了分享的接口,你可以通过ServiceType设置是分享到Facebook、Twitter、新浪微博、腾讯微博,而不关心具体的细节实现。那么当运行上面的示例时它是怎么知道用哪个账户来发送微博呢?其实在iOS的设置中有专门设置Facebook、Twitter、微博的地方:

必须首先在这里设置微博账户才能完成上面的发送,不然Social框架也不可能知道具体使用哪个账户来发送。

转载于:https://www.cnblogs.com/HOYF/p/5331141.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1855)vue之电商管理系统电商系统之安装mysql出现VCRUNTIME140_1.dll

由于找不到VCRUNTIME140_1.dll&#xff0c;无法继续执行代码。重新安装程序可能会解决此问题 链接: https://pan.baidu.com/s/1eDs_N5zM-1pvByyfvm0S3Q 提取码: fh91 安装插件即可

MyBatis的foreach查询(List、Array、Map)

https://www.iteye.com/blog/xh32t03-2361336

前端学习(1856)vue之电商管理系统电商系统之安装mysql出现mysql报错:Can’t start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址

2020-07-26T11:44:29.778919Z 0 [ERROR] [MY-010262] [Server] Cant start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

mybatis数组和集合的长度判断及插入

http://www.mamicode.com/info-detail-2377759.html

简单存取款机的实现---控制输入变量的规则

转载于:https://www.cnblogs.com/quanby/p/5335527.html

前端学习(1854)vue之电商管理系统电商系统之安装mysql

本地安装好数据库 source导入命令 source d:/mydb.sql

ueditor 上传图片或者视频报错 413 Request Entity Too Large

https://blog.csdn.net/cominglately/article/details/79773697

前端学习(1857)vue之电商管理系统电商系统之配置api接口服务器并用postman调试接口

# 1. 电商管理后台 API 接口文档## 1.1. API V1 接口说明- 接口基准地址&#xff1a;http://127.0.0.1:8888/api/private/v1/ - 服务端已开启 CORS 跨域支持 - API V1 认证统一使用 Token 认证 - 需要授权的 API &#xff0c;必须在请求头中使用 Authorization 字段提供 token …

[原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied

/** * lihaibo * 文章内容都是根据自己工作情况实践得出。 *如有错误&#xff0c;请指正 * 版权声明&#xff1a;本博客欢迎转发&#xff0c;但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5337295.html */ 一、问题出现的原因&#xff1a; 如下图&#xff0c;在…

quartz定时任务时间设置

https://www.cnblogs.com/a8457013/p/8515939.html

复利计算--结对1.0,做汉堡,结对2.0

一、项目需求: 12. 即要追求利益&#xff0c;又要面对不可预知的金融投资风险&#xff0c; “不能把鸡蛋放在同一个篮子里”&#xff0c;所以有必要进行组合投资。 通过上述计算与对比&#xff0c;可以帮助客户进行投资决策。 客户&#xff1a;那么能否帮我记录下一笔一笔不同…

Java抓取淘宝/天猫商品详情

https://segmentfault.com/a/1190000008313617

Python列表和元组

Python是没有数组的概念&#xff0c;但是和数组比较相近的概念是列表和元素。 下面两个例子展示列表和元组。 # codingutf-8 # 元组 students (小明, 小黄, 小李, 小郑) print students[2] # codingutf-8 # 列表 students [小明, 小黄, 小张, 小花] print students[1] 元组和…

js 生成二维码

https://www.jianshu.com/p/b53eae520de4 https://www.runoob.com/w3cnote/javascript-qrcodejs-library.html

前端学习(1859)vue之电商管理系统电商系统之梳理项目结构

vue ui打开 app.vue <template><div id"app">app根组件</div> </template><script>export default {name: app,} </script><style> #app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: a…

使用ArrayList时设置初始容量的重要性

https://blog.csdn.net/hyxhbj1/article/details/80937673 https://blog.csdn.net/tb9125256/article/details/80920997

木棒,POJ(1011)

题目链接&#xff1a;http://poj.org/problem?id1011 解题报告&#xff1a; #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm>using namespace std;const int maxn 70;int n,sum,aim,num,a[maxn];bool used[maxn];bool…

前端学习(1860)vue之电商管理系统电商系统之渲染login组件并且实现路由重定向

vue ui打开 app.vue <template><div id"app"><router-view></router-view></div> </template><script>export default {name: app,} </script><style> #app {font-family: Avenir, Helvetica, Arial, sans-s…