zoukankan      html  css  js  c++  java
  • 应用程序跳转

    1. 应用场景:

    • 使用第三方登录 : 需要用户授权, 授权完成后, 返回应用
    • 应用推广, 积分墙
    • 支付宝, 第三方支付, 淘宝, 电话费充值

    2. 应用程序跳转   -----   实际上是调用其他应用的URL

    •  target  --- info   ---  URL Type  +

    3.应用跳转 代码

        //

        UIApplication *app = [UIApplication sharedApplication];

    // 只需要 设置协议头就可以跳转了    

        NSURL *url = [NSURL URLWithString:@"sina://"];

        if ([app canOpenURL:url]) {

            [app openURL:url];

        }else{

            LogRed(@"到AppStore --- 下载");

        }

    ------------------------------------------------------------------------------------------------------------------------

    4. 跳转到指定界面

    /**

     *  当被其他应用程序通过URL打开时, 就会调用

     *

     *  @param application 当前应用程序

     *  @param url         打开当前应用程序的URL

     */

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

    {

        LogGreen(@"%@",url);

        

        // 1. 获取 授权控制器

        UINavigationController *nav = (UINavigationController *)self.window.rootViewController;

        

        // 栈顶Viewcon

        ViewController *homeVC = (ViewController *)nav.topViewController;

        

        

        NSString *urlStr = url.absoluteString;

        if ([urlStr hasPrefix:@"sina://author"]) {

            LogYellow(@"跳转到 --  授权");

            

            // 截取1Con scheme

            NSRange range = [urlStr rangeOfString:@"sina://author?myscheme="];

            NSString *subStr = [urlStr substringFromIndex:range.length];

            

            LogMagenta(@"%@",subStr);

            

            [homeVC performSegueWithIdentifier:@"home2author" sender:nil];

            

        }else if ([urlStr hasPrefix:@"sina://view?id="]){

            LogYellow(@"跳转到  --- 详情");

            

            [homeVC performSegueWithIdentifier:@"home2detail" sender:nil];

        }

        

        return YES;

    }

    /**

     *  当被其他应用程序通过URL打开时, 就会调用 --- 新的方法

     *

     *  @param application       当前应用程序

     *  @param url               打开当前应用程序的url

     *  @param sourceApplication 打开当前应用程序的 bundle identifier

     *  @param annotation

     *

     *  @return

     */

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

    {

        /**

         *  sourceApplication

         

         标记 - 唯一App(积分墙)

         */

        

        return YES;

    }

  • 相关阅读:
    博客第一篇:博客申请理由
    Cookie基础
    滚动篇————附一个简单单的自定义滚动条
    javascript中对字符串的操作总结
    javascript中创建对象的几种方式
    javascript中event汇总
    ...python scrapy
    Ubuntu 检测到系统出现问题 弹窗 嘿嘿
    万一哪天笔记全没了, 你真正记住的还有多少
    windows10安装mysql5.7.17是这样安装的吗?
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4831031.html
Copyright © 2011-2022 走看看