友盟分享,极光推送Demo
友盟分享SDK下载及官方文档
http://dev.umeng.com/social/ios/detail-share
1.注册应用获取App友盟Appkey(556d14ad67e58eb084003fed)
2.下载SDK并导入工程内
3.添加库文件
/友盟分享 注意添加类库 libz.1.1.3.dylib libstdc++.dylib
/** 需添加类库
Security.framework
libiconv.dylib
SystemConfiguration.framework
CoreGraphics.Framework
libsqlite3.dylib
CoreTelephony.framework
libstdc++.dylib
libz.dylib
*/
4.配置URL schemes
配置URL是为了能够分享到其他应用后能返回当前应用,不配置将无法返回
步骤:搜索plist,选择Inf.plist,添加一项URL types
添加相关Url(详细如何设置 URL schemes)
(相关扩展阅读 iOS 客户端URL Scheme配置以及使用)
添加相关代码
AppDelegate.h 文件
//
// AppDelegate.h
// UMShareTestDemo #import <UIKit/UIKit.h> #define UmengAppkey @"5513d956fd98c579b80003de" //友盟分享Key @interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
AppDelegate.m 文件
// AppDelegate.m
// UMShareTestDemo
//
// Created by luo.h on 15-6-2.
// Copyright (c) 2015年 sibu.cn. All rights reserved.
// #import "AppDelegate.h" #import "UMSocialWechatHandler.h"//微信分享
#import "UMSocialQQHandler.h" //QQ分享 #import "UMSocial.h"//友盟分享 注意添加类库 libz.1.1.3.dylib libstdc++.dylib
/** 注意添加类库,否则报错
Security.framework
libiconv.dylib
SystemConfiguration.framework
CoreGraphics.Framework
libsqlite3.dylib
CoreTelephony.framework
libstdc++.dylib
libz.dylib
*/
@interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch. [self UMSociaShareSetting];//UMShare return YES;
} #pragma mark ---友盟分享相关设置 Beggin----
-(void)UMSociaShareSetting
{
[UMSocialData setAppKey:UmengAppkey];//友盟分享 //设置微信AppId、appSecret,分享url 微信,QQ
[UMSocialWechatHandler setWXAppId:@"wx2cbecfee5bbcdca8" appSecret:@"e0b32875602ccbb7147c9e944807c39b" url:@"https://weishang.org/download/"];
[UMSocialQQHandler setQQWithAppId:@"1104521802" appKey:@"a1zNFkJ4IY76mu0A" url:@"https://weishang.org/download/"];
} - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [UMSocialSnsService handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
BOOL result = [UMSocialSnsService handleOpenURL:url];
if (result == FALSE) {
//调用其他SDK,例如新浪微博SDK等
}
return result;
}
#pragma mark ---友盟分享相关设置 End----
分享页面设置 ViewController
//
// ViewController.m
// UMShareTestDemo
#import "ViewController.h" #import "AppDelegate.h"//UmengAppkey在AppDelegate里
#import "UMSocial.h" //UM分享 @interface ViewController ()<UMSocialUIDelegate> @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *shareButton=[UIButton buttonWithType:UIButtonTypeCustom];
shareButton.frame=CGRectMake(100,100, 100, 80);
shareButton.backgroundColor=[UIColor orangeColor];
[shareButton setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
[shareButton setTitle:@"UM分享" forState:UIControlStateNormal];
[shareButton addTarget:self action:@selector(UMShareUI) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:shareButton];
} #pragma mark-------------- 友盟分享 -----------------
//友盟分享
-(void)UMShareUI
{
NSString *shareText = @"手机在手即可随时随地完成微商权威认证https://weishang.org/center/download"; //分享内嵌文字
UIImage *shareImage = [UIImage imageNamed:@"shareIcon"]; //分享内嵌图片
NSArray *arrayNames=[NSArray arrayWithObjects:UMShareToWechatSession,UMShareToWechatTimeline,UMShareToQQ,UMShareToQzone,UMShareToSina,UMShareToTencent,UMShareToSms,UMShareToDouban,nil]; //注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
[UMSocialSnsService presentSnsIconSheetView:self
appKey:UmengAppkey
shareText:shareText
shareImage:shareImage
shareToSnsNames:arrayNames
delegate:self];
} //弹出列表方法presentSnsIconSheetView需要设置delegate为self
-(BOOL)isDirectShareInIconActionSheet
{
return NO;//NO 不直接分享
} -(void)didCloseUIViewController:(UMSViewControllerType)fromViewControllerType
{
NSLog(@"didClose is %d",fromViewControllerType);
} //下面得到分享完成的回调
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
{
NSLog(@"didFinishGetUMSocialDataInViewController with response is %@",response);
//根据`responseCode`得到发送结果,如果分享成功
if(response.responseCode == UMSResponseCodeSuccess)
{
//得到分享到的微博平台名
NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
}
else
{
NSLog(@"分享失败");
}
} @end
PS:QQ空间必须为图文分享,否则分享失败
Demo下载 https://files.cnblogs.com/files/sixindev/UMShareTestDemo.zip
首先需要在开发者平台注册应用,获取APPID
极光推送
iOS SDK 集成指南 http://docs.jpush.io/guideline/ios_guide/
iOS SDK 教程 http://docs.jpush.io/client/ios_tutorials/
友盟分享,极光推送Demo的更多相关文章
- tp的极光推送demo
原文地址:http://blog.csdn.net/zhihua_w/article/details/52197611 极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专 ...
- ThinkPHP框架整合极光推送DEMO
极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业.高效的移动消息推送服务. 本篇博文讲述如何在将极光推送DEMO整合到ThinkPHP框架中,我使用的是极光推送PHP ...
- 极光推送Demo
<?php //极光推送的类 //文档见:http://docs.jpush.cn/display/dev/Push-API-v3 /***使用示例***/ ...
- 友盟umeng消息推送直接复制就能用(纯干货)
一. 单播推送(unicast) 1.1 图 1.2 代码 1 /** 2 * 根据设备的deviceToken, 去给指定的设备推送消息 3 * 4 * @param deviceToken 单个d ...
- 基于最新友盟开发文档,集成友盟分享功能,赋demo
集成准备 获取Appkey 快速集成 获取SDK,页面截图: 下载后打开 导入jar和res 添加回调Activity 微信 在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivit ...
- iOS开发——iOS10升级极光推送SDK、友盟分享SDK
前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...
- 极光推送---安卓Demo
对于一个一直干.net的程序媛来说,冷不丁的让小编干安卓,那种感觉就好似小狗狗咬小刺猬一样,不知道从哪儿开始下手,对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下 ...
- 关于极光推送Jpush的demo
关于极光推送Jpush 推送是手机app必不可少的一样功能,这次由于公司项目需要研究了一下.由于推送一般写于服务端,所以对于不会Android的javaweb程序员要写出一个完整的demo是一件很头痛 ...
- AppDelegate减负之常用三方封装 - 友盟分享 / 三方登录篇
之前完成了 AppDelegate减负之常用三方封装 - 友盟推送篇: http://www.cnblogs.com/zhouxihi/p/7113511.html 今天接着来完成 - 友盟分享和三方 ...
随机推荐
- Kafka基础教程(四):.net core集成使用Kafka消息队列
.net core使用Kafka可以像上一篇介绍的封装那样使用(Kafka基础教程(三):C#使用Kafka消息队列),但是我还是觉得再做一层封装比较好,同时还能使用它做一个日志收集的功能. 因为代码 ...
- 图像数据到网格数据-1——Marching Cubes算法的一种实现
概述 之前的博文已经完整的介绍了三维图像数据和三角形网格数据.在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像.比如利用CT机扫描人体得到人体断层扫描图像,就是一个表征 ...
- Linux 进程调度
线程状态(context) 程序计数器(Program Counter),它表示当前线程执行指令的位置. 保存变量的寄存器. 程序的Stack.通常来说每个线程都有属于自己的Stack,Stack记录 ...
- Python_多任务:进程、线程、协程
进程 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体.进程是一种抽象的概念,从来没有统一的标准定义.进程一般由程序 ...
- IE播放音频踩坑之路---待修改
在其他浏览器都是兼容的!在IE9就是显示一个黑色的框上面有个X 音乐无法播放 要显示播放界面的话,要添加 controls 属性(控件属性)例子:<audio src="xxx.m ...
- test_6 python的列表去重
1.使用内置函数set() set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 2.创建一个空的列表进行比较,把不重复的元素添加到新的列表中 #co ...
- leetcode 206. 反转链表 及 92. 反转链表 II
206. 反转链表 问题描述 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1-> ...
- 通过Javascript实现把数组里的内容以表格方式呈现到页面从
一.把数组里的内容呈现到页面从,以表格方式 <!doctype html> <html> <head> <meta charset="utf-8&q ...
- Python 根据id生成唯一码
Python 根据id生成唯一码 最近业务中遇到需要分享某个文案,复制文案打开APP需要提取文案中包含的id,但又不想明文暴露id,所以需要对id进行加密,很想让前端来做,可惜多个前端协调起来不方便( ...
- 用Win +R运行快速启动各种程序
许多人认为Windows的Win+R运行就是摆设,除了开cmd和shutdown外毫无用处.其实Win+R是可以用于各种快捷启动的. Win+R可以视作执行一条cmd命令,要用他运行程序,理论上必须输 ...