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;

    }

  • 相关阅读:
    基于索引的MySQL优化
    SQL优化:
    in的对象选择(子查询还是List集合),in 的优化,in与exists
    嵌套查询及其作用域:
    group by实现原理及其作用
    批量打回未报bug修复
    解析Job,bpmn文件的小项目总结
    用户短时间内多次提交与保存带来的问题
    嵌套连接
    多范围读取优化
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4831031.html
Copyright © 2011-2022 走看看