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;

    }

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4831031.html
Copyright © 2011-2022 走看看