zoukankan      html  css  js  c++  java
  • app之间的跳转和传参问题

    app 之间跳转和传参;

    首先 创建2个app   formApp (需要跳转到另外app的项目)     toApp(被跳转的项目)

    一:在toApp 项目中的操作:

    1:创建URLSchemes ,

    (1).打开info.plist文件,

    2. 在appdelegate.m 中 

    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
    {
        /**
         如果使用URL 传参数
         */
        NSLog(@"----formApp_URL:%@",url);
        
        /**
         如果使用的是剪切板传参的话,
         */
        UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
        NSString *content = pasteboard.string;
        NSLog(@"剪切板获取参数:%@",content);
        
        /**
         其他操作
         */
        
        return YES;
    }

    二:在formApp中的操作

    1.检测 设备 是否安装了toApp 了,并跳转

    /**
     跳转操作
     */
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        /**
         toApp Schemes://
         */
        NSString *toAppSchemes = @"willToAppURLSchemes://";
        
        /**
        检测设备 是否安装toApp
         */
        if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:toAppSchemes]]) {
            
            NSLog(@"alearly install");
            
            /**
             跳转app
             */
            
            /**
             1:使用URL 传递参数
             */
            if ([self IOS10]) {
                
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@?usrid=110",toAppSchemes]] options:@{} completionHandler:^(BOOL success) {
                    /**
                      成功跳转后的操作
                     */
                }];
            }else{
            
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@?usrid=110",toAppSchemes]]];
            }
            
            
    //        /**
    //         2:使用剪切板传递参数
    //         */
    //        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:toAppSchemes]];
    //        /**
    //         系统剪切板 (在topApp中 接受到参数后,清空)
    //         */
    //        UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    //    pasteboard.string = @"user=120&orderid=123456";
            
        }else{
            
            NSLog(@"not install");
        }
    }
    
    /**
     判断 系统是否 大于10
     */
    - (BOOL)IOS10
    {
        return  ([[[UIDevice currentDevice] systemVersion] floatValue]) >= 10 ? YES : NO;
    }

    2:注意 在检测是否安装时,在xcode7 和iOS9 之后 需要设置白名单,

    打开formApp info.plist文件,添加 LSApplicationQueriesSchemes

    这样就可以成功检测到 是否安装toApp了,

    3. 在传参数的方式 除了 URL,剪切板,还有钥匙串等,想知道更多的方式或详细的,可以搜索--> app之间的通信

  • 相关阅读:
    人工大脑项目 —— Nengo
    四种聚类方法之比较
    对淘宝一些规则的一些研究分享
    【转】千万不要在夏季开发苹果应用,否则后果很严重
    Windows2003上使用IIS7 Express使用FastCgi运行php
    傅立叶变换最直白最容易理解最直接最真实最有深度的解释
    音视频技术应用(18) 控制播放进度——av_seek_frame()
    MySQL 中如何定位 DDL 被阻塞的问题
    windows 编译版本异常处理
    R语言的前世今生
  • 原文地址:https://www.cnblogs.com/liuwenqiang/p/6882910.html
Copyright © 2011-2022 走看看