应用程序间跳转和社交分享

作者: Mg明明就是你 | 来源:发表于2016-04-27 23:12 被阅读244次

    一. 应用程序间跳转

    1. 什么是应用间跳转,有什么作用?

    - 应用场景
        1. 使用第三方用户登录,需要用户授权,还需要"返回到调用的程序,同时返回授权的用户名"
        2. 应用程序推广,网易彩票,设置-推荐应用-有很多应用程序图标如果本机已经安装过,会直接跳转到另外一个应用程序, 软件的广告,推广结果,后续会有一些列的金钱上的结算
        3. 支付宝,第三方支付,淘宝,电话费充值。。。
    

    2. 应用程序间跳转实现?

    直接打开对应APP的scheme即可

    1. 概念须知

       > URL : 统一资源定位符
           scheme(协议头) : 决定通过什么方式查找资源 http:// ftp:// tel:// file://
           path(路径) : 资源路径 www.baidu.com 192.168.1.1/资源 110 /User/Desktop
      
    2. 设置方式

       > 默认情况下应用程序是没有自己的URL的,如果想要拥有自己的URL,需要设置URL
           项目 -> info -> URL Types -> URL Scheme
      
    3. 打开方式

       代码:
           [[UIApplication shareApplication] openURL:appURL];
      
    4. 跳转到对方APP, 对方APP执行的代理方法

       -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
       {
       
       }
      
    5. iOS9.0跳转适配
      在info.plist文件中添加LSApplicationQueriesSchemes 字段 ,是数组类型

    6.具体操作流程

    跳转的代码如下:
    1. 应用场景
    上面已经说明
    
    2. 要打开本机上的其他应用程序,需要设置schemes,自定义的协议头,可以打开其他的应用程序
    - (IBAction)openWangyi:(id)sender
    {
        // 跳转到其他应用程序
        // schemes: 网易的scheme wangyi
        NSURL *url = [NSURL URLWithString:@"wangyi://view?newsid=201410130001"];
        
        // 判断本机是否安装了目标程序
        if ([[UIApplication sharedApplication] canOpenURL:url]) {
            [[UIApplication sharedApplication] openURL:url];
        } else {
            NSLog(@"没有安装,可以再给定下载地址,前往");
        }
    }
    
    3. 新浪微博的授权界面说明:
    1> 在新浪微博中,本身不能直接跳转到该界面
    2> 用其他应用程序打开时,如果scheme时weibo://oaauth,直接进入此界面
    3> 如果直接点击,返回,返回调用的应用程序
    4> 如果点击表格行中的用户名,直接返回用户信息给调用应用程序
    
    
    4. 如果要返回调用的应用程序,需要知道调用我们的应用程序的scheme
    // 旧方法
    /** 只要是由其他应用程序打开的,就会调用此方法 */
    /** URL 就是其他应用程序,打开当前程序使用的URL */
    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
    
    // 新方法
    /** 
     openURL 是打开当前应用程序的url
     sourceApplication 是当开当前应用程序的源程序的BundleId
     
     提示:一旦重写了新方法,旧方法就不再被执行
     但是:很多第三方框架,都建议两个方法全都写
     */
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation```
    ---
    
    # 二. 社交分享
    ### 1. 什么是社交分享, 有什么作用?
        
        - 通过用户的分享,让更多的人去了解和使用这个App
        - 目前移动互联网应用程序推广的最重要手段之一
        - 属于口碑营销的范畴,经典成功案例是《疯狂猜图》
    
    ### 2. 社交分享的实现方案
    - 1.系统自带社交分享
    
            1. 导入Social.framework
            
            2. 判断服务是否可用
                [SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo];
                
            3. 弹出分享内容输入界面
                SLComposeViewController *cc = \[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
                [self presentViewController:cc animated:YES completion:nil];
                
            4. 额外设置
                [cc setInitialText:@"测试文字"]; // 初始化文字
                [cc addImage:[UIImage imageNamed:@"lufy"]]; // 配图
    
    - 2.第三方SDK实现(友盟分享)
    下载地址: [http://www.umeng.com/]
            1. 申请账号,创建应用
            2. 下载SDK
            3. 参照集成文档
    
    
    - 3.社交分享的一些建议
      - 远程通知-由服务器、开发商向用户推送消息
      - 社交分享-App的用户主动分享他们的经验和心得 - 口碑营销
    
    ========================================================
    SSO - 目前在国内使用比较多,如果本机安装了某个应用程序,会直接进入该应用程序获得授权。
    
    URL Schemes填"sina."+你的友盟AppKey.实现下面两个系统回调:========================================================
    
    强烈推荐大家使用的框架:友盟的统计分析
    关注官方网站:http://bbs.umeng.com/forum-social-1.html

    相关文章

      网友评论

        本文标题:应用程序间跳转和社交分享

        本文链接:https://www.haomeiwen.com/subject/hjocrttx.html