应用程序间跳转 (友盟SSO 授权 与系统自带的分享)
应用程序间跳转的应用场景
- 使用第三方用户登录,如微信登录,返回用户名和密码
- 需要用户授权,返回到调用程序,同时返回授权的用户名
- 应用程序推广,跳转到itunes并显示指定app下载页
- 第三方支付,跳转到支付APP,如支付宝,微信钱包
- 显示位置及导航功能时,跳转到第三方地图应用。
- 打电话、发邮件、发短信、打开网页等,跳转到内置APP程序
应用间的跳转:
1.//url :统一资源占位符 http://baidu.com tel://110 file:///apple/storebock
//由 协议头:http:// tel:// file://
// 资源路径:baidu.com
2.如何配置应用程序的URL的协议头: target (项目)- > info > URL Type >URL Schemes
3.APP —A
//跳转到微信APP
- (IBAction)jump {
[self openXiaodiWeiXin:@"xiaodi://"];
}
//跳转到微信好友界面,带上另一个要跳转到的控制器的indentify和自己的Schemes(协议头)
- (IBAction)secttion {
[self openXiaodiWeiXin:@"xiaodi://secttion?Schemes=news"];
}
//跳转到朋友圈界面
- (IBAction)timeLine {
[self openXiaodiWeiXin:@"xiaodi://timeLine"];
}
-(void)openXiaodiWeiXin:(NSString *)URLStr
{
//2.如何配置应用程序的URL的协议头: target (项目)- > info > URL Type >URL Schemes
//1.创建要跳转的应用程序的URL
NSURL *weixinURL = [NSURL URLWithString:URLStr];
//2.判断URL是否可以跳转
if ([[UIApplication sharedApplication]canOpenURL:weixinURL]) {
//跳转到另一个应用程序
[[UIApplication sharedApplication]openURL:weixinURL];
}
}
****************
APP — B
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
UINavigationController *nav = (UINavigationController *)self.window.rootViewController;
//消除动画,会先把当前的控制器压栈,返回会先返回原来的控制器,再返回主页
[nav popToRootViewControllerAnimated:NO];
ViewController *mainVC = [nav.childViewControllers firstObject];
NSString *urlStr = url.absoluteString;
if ([urlStr rangeOfString:@"secttion" ].length) {
//把传过来的Schemes 传到相应控制器(方便跳回原来的APP)
mainVC.appURLStr = urlStr;
//跳转到相应的控制器
[mainVC performSegueWithIdentifier:@"Secction" sender:nil];
NSLog(@"这是通过微信好友打开:%@",url);
}else if ([urlStr rangeOfString:@"timeLine"].length)
{
//跳转到相应的控制器
[mainVC performSegueWithIdentifier:@"TimeLine" sender:nil];
NSLog(@"这是通过微信朋友圈打开的%@",url);
}
return YES;
}
****ViewController.m
//使用UIStoryboardSegue 话,可以利用该方法传值
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Secction"]) {
SecttionViewController *secttionVC = segue.destinationViewController;
secttionVC.appURLStr = self.appURLStr;
}
}
****相应要跳转的页面实现跳回原来的APP
/回到原来的APP
- (IBAction)BackToApp {
NSString *urlStr = self.appURLStr;
NSRange rangstring =[urlStr rangeOfString:@"xiaodi://secttion?Schemes="];//NSRangeFromString()
NSString *schemesStr = [urlStr substringFromIndex: rangstring.length];
NSLog(@"%@",schemesStr);
NSString *schemesString = [NSString stringWithFormat:@"%@://",schemesStr];
NSURL *schemesUrl =[NSURL URLWithString:schemesString];
if ([[UIApplication sharedApplication]canOpenURL:schemesUrl]) {
[[UIApplication sharedApplication]openURL:schemesUrl];
}
}
//****************************************************
1.利用系统自带做分享 (看工程 友盟分享)
//1.测试平台是否可用
if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
NSLog(@"新浪微博分享是否成功,如果没有 请 设置界面 》新浪微博 》 设置新浪微博ID ");
}
//2.创建SLComposeViewController
SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
//设置发送的文字
[composeViewController setInitialText:@"千年等一回,不要错过"];
//设置发送的图片
[composeViewController addImage:[UIImage imageNamed:@"SSO"]];
//弹出发送界面
[self presentViewController:composeViewController animated:YES completion:nil];
//设置分享成功与取消的提醒
composeViewController.completionHandler = ^(SLComposeViewControllerResult result)
{
if (result == SLComposeViewControllerResultCancelled) {
NSLog(@"用户取消了分享");
}else
{
NSLog(@"用户点击了发送");
}
};
友盟SSO授权分享:
什么是SSO的授权方式呢?
大家常说的SSO的授权方式,其实全称是Single Sign-On,就是利用新浪微博、QQ空间、手机QQ和Facebook客户端来完成授权。对于用户来说可以省去输入账号密码,更方便安全,因此各大平台均建议开发者优先使用这一种授权方式。ShareSDK目前支持以下平台的SSO:新浪微博、腾讯微博、QQ空间、facebook、Pocket.
网址:http://dev.umeng.com/social/android/operation
当要用很自己手机的已经安装的软件进行分享某篇文章图片小视屏等等都可以使用
应用程序间跳转 (友盟SSO 授权 与系统自带的分享)的更多相关文章
- 微信小程序小结(4) -- 分包加载及小程序间跳转
分包加载 某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载(主要是空间不够用,哈哈~). 在构建小程序分包项目时,构建会输出一个或多个功能的分包,其中 ...
- iOS 程序间跳转传参(支付和地图)
两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的. 1.首先设置第一个APP的url地址 2.接着设置第二个AP ...
- 友盟错误日志分析(转自:COCOACHINA shemy )
在做的项目中,用到了友盟的组件,在没有禁用错误日志上传之前,收集了一些错误日志. 有一些朋友看到了错误日志,却不知道怎么定位到程序的的代码中,实际上,这一步是非常的简单.友盟没有集成.dSYM文件 ...
- Android之友盟多渠道打包与数据统计
文章大纲 一.多渠道打包与数据统计介绍二.友盟实现多渠道打包实战三.友盟数据统计实战四.项目源码下载五.参考文章 一.多渠道打包与数据统计介绍 多渠道打包,相信很多同学都知道.在Android ...
- iOS 友盟推送,应用内推送启动图推送闪动黑屏,插屏推送方法报错
以前都是用的极光推送,应公司需求要求使用友盟推送,为了以后是有分享都适用,,, 友盟推送文档,下载demo 感觉比极光用着要简单顺手 一切就绪后,开始发送消息测试,,,,,搞了半天没有发过来消息 原来 ...
- cocos2dx集成友盟社会化分享图片崩溃问题
本人不懂oc,一步一步按照友盟的文档做,好不容易把分享做好了,结果在 分享图片的时候宕掉了.各种测试,搞了一下午终于搞定了. 如下是友盟文档的做法,错误就在[UIImage imageNamed:@& ...
- 使用openURL实现程序间带参数跳转详解
使用openURL实现程序间带参数跳转详解 实现的效果:有两款应用A与B,A打开B A --> B 1. 新建工程B,bundle ID为com.YouXianMing.B 建立一个URL 这么 ...
- 微信小程序里如何使用npm?小程序集成友盟举例
1.执行npm初始化指令 小程序根目录,命令执行如下指令: npm init 执行后会让加载项目初始信息,具体截图如下: 2.执行安装npm包指令 在这我们举个例子,以接入友盟统计SDK为例,执行命令 ...
- Android集成友盟社会化分享功能
1. 产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪 ...
随机推荐
- Java 解析XML的几种方法
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已. 基本的解析方式 ...
- Sphinx的介绍和原理探索
What/Sphinx是什么 定义 Sphinx是一个全文检索引擎. 特性 索引和性能优异 易于集成SQL和XML数据源,并可使用SphinxAPI.SphinxQL或者SphinxSE搜索接口 易于 ...
- PHP面试题集
汗~~做了一下网络上的php题目,不知不觉做到现在.....把答案贴出来如果有问题请欢迎补充和指正 1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分) $a = da ...
- Delphi函数的返回值(注意这里与C/C++等语言有差异)
在C/C++等语言中,函数执行到 return 部分之后,将立即停止函数的执行,并返回值 但是在Delphi中不同 函数中,执行到result时,并不同于比如 C/C++ 中的 return,跳出函数 ...
- 【翻译三】java-并发之线程对象和实现
Thread Objects Each thread is associated with an instance of the class Thread. There are two basic s ...
- 湘潭1247 Pair-Pair(树状数组)
分析: 给定n个二元组,求选出两个二元组(可以是同一个)组成一序列其LIS为1,2,3,4的方法数. 分别记为s1, s2, s3, s4 s1,s4对应的情形为a >= b >= c & ...
- maven pom.xml 说明
本文复制于:http://blog.csdn.net/zhuxinhua/article/details/5788546 一.pom.xml示例 <project> <modelVe ...
- NS2中trace文件分析
ns中模拟出来的时间最终会以trace文件的形式告诉我们,虽然说一般都是用awk等工具分析trace文件,但是了解trace文件的格式也是必不可少的.下面就介绍一下无线网络模拟中trace文件的格式. ...
- PMP - 项目管理思维导图
- Activity有四种加载模式(转)
Activity有四种加载模式: standard singleTop singleTask singleInstance 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者 ...