应用程序间跳转的应用场景

  1. 使用第三方用户登录,如微信登录,返回用户名和密码
  2. 需要用户授权,返回到调用程序,同时返回授权的用户名
  3. 应用程序推广,跳转到itunes并显示指定app下载页
  4. 第三方支付,跳转到支付APP,如支付宝,微信钱包
  5. 显示位置及导航功能时,跳转到第三方地图应用。
  6. 打电话、发邮件、发短信、打开网页等,跳转到内置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空间、手机QQFacebook客户端来完成授权。对于用户来说可以省去输入账号密码,更方便安全,因此各大平台均建议开发者优先使用这一种授权方式。ShareSDK目前支持以下平台的SSO:新浪微博、腾讯微博、QQ空间、facebook、Pocket.

网址:http://dev.umeng.com/social/android/operation

当要用很自己手机的已经安装的软件进行分享某篇文章图片小视屏等等都可以使用

应用程序间跳转 (友盟SSO 授权 与系统自带的分享)的更多相关文章

  1. 微信小程序小结(4) -- 分包加载及小程序间跳转

    分包加载 某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载(主要是空间不够用,哈哈~). 在构建小程序分包项目时,构建会输出一个或多个功能的分包,其中 ...

  2. iOS 程序间跳转传参(支付和地图)

    两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的. 1.首先设置第一个APP的url地址 2.接着设置第二个AP ...

  3. 友盟错误日志分析(转自:COCOACHINA shemy )

      在做的项目中,用到了友盟的组件,在没有禁用错误日志上传之前,收集了一些错误日志. 有一些朋友看到了错误日志,却不知道怎么定位到程序的的代码中,实际上,这一步是非常的简单.友盟没有集成.dSYM文件 ...

  4. Android之友盟多渠道打包与数据统计

    文章大纲 一.多渠道打包与数据统计介绍二.友盟实现多渠道打包实战三.友盟数据统计实战四.项目源码下载五.参考文章   一.多渠道打包与数据统计介绍   多渠道打包,相信很多同学都知道.在Android ...

  5. iOS 友盟推送,应用内推送启动图推送闪动黑屏,插屏推送方法报错

    以前都是用的极光推送,应公司需求要求使用友盟推送,为了以后是有分享都适用,,, 友盟推送文档,下载demo 感觉比极光用着要简单顺手 一切就绪后,开始发送消息测试,,,,,搞了半天没有发过来消息 原来 ...

  6. cocos2dx集成友盟社会化分享图片崩溃问题

    本人不懂oc,一步一步按照友盟的文档做,好不容易把分享做好了,结果在 分享图片的时候宕掉了.各种测试,搞了一下午终于搞定了. 如下是友盟文档的做法,错误就在[UIImage imageNamed:@& ...

  7. 使用openURL实现程序间带参数跳转详解

    使用openURL实现程序间带参数跳转详解 实现的效果:有两款应用A与B,A打开B A --> B 1. 新建工程B,bundle ID为com.YouXianMing.B 建立一个URL 这么 ...

  8. 微信小程序里如何使用npm?小程序集成友盟举例

    1.执行npm初始化指令 小程序根目录,命令执行如下指令: npm init 执行后会让加载项目初始信息,具体截图如下: 2.执行安装npm包指令 在这我们举个例子,以接入友盟统计SDK为例,执行命令 ...

  9. Android集成友盟社会化分享功能

    1.  产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪 ...

随机推荐

  1. route netstat -rn

    -n :不要使用通讯协定或主机名称,直接使用ip或port number; -ee:使用更详细的资讯来显示 [root@NB data]# route -nee Kernel IP routing t ...

  2. location url 反向代理到来机的其它端口 gitlab

    location /nexus { proxy_pass http://127.0.0.1:8081/nexus; } [root@GitMaven conf]# pwd /var/opt/gitla ...

  3. 磁盘空间占满inode结点没用完 并删除了文件但是释放不了

    lsof  |grep delete lsof(list system open file )可显示系统打开的文件,以root身份运行. 很多时候文件正在被占用,即使删除了,也无法释放空间,只有停 了 ...

  4. Delphi线程简介---Create及其参数、Resume、Suspend

    TThread在Classes单元里的声明如下 type TThread = class private FHandle: THandle; FThreadID: THandle; FTerminat ...

  5. 【转载】 Python 方法参数 * 和 **

    Python的函数定义中有两种特殊的情况,即出现*,**的形式. 如:def myfun1(username, *keys)或def myfun2(username, **keys)等. 他们与函数有 ...

  6. android 入门-Service

    sdk 1.7 package com.example.hellowrold; import java.util.Random; import com.example.hellowrold.R.id; ...

  7. CodeIgniter类的使用

    Email 类 在配置文件中设置 Email 参数 如果您不想使用使用上述方法设定参数,您可以把它们放入一个配置文件.创建一个新文件称为email.php ,添加$config数组在该文件中.然后将该 ...

  8. 配置ogg异构oracle-mysql(2)源端配置

    源端配置大致分为如下三个步骤:配置mgr,配置抽取进程,配置投递进程 在源端先创建一张表,记得带主键: SQL> create table ah4(id int ,name varchar(10 ...

  9. android之SharedPreferes

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

  10. Spark Streaming容错的改进和零数据丢失

    本文来自Spark Streaming项目带头人 Tathagata Das的博客文章,他现在就职于Databricks公司.过去曾在UC Berkeley的AMPLab实验室进行大数据和Spark  ...