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;

    }

  • 相关阅读:
    输出python的help结果到文件中
    webdriver 的三种等待方式
    Loadrunner 怎么将response的数据下载下来
    Loadrunner web_reg_find 和web_reg_save_param 比较
    LR的响应时间与使用IE所感受时间不一致的讨论
    Loadrunner错误-26601、-27492、-27727处理方法
    loadrunner运行乱码解决方法
    OpenGL ES: (1) OpenGL ES的由来 (转)
    JPG:文件格式系列科普之.JPEG/.JPG(转)
    单色位图、16色位图、256色位图的含义
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4831031.html
Copyright © 2011-2022 走看看