美文网首页iOS 开发每天分享优质文章
iOS 利用URL Scheme从微信唤起APP尝试

iOS 利用URL Scheme从微信唤起APP尝试

作者: 翻滚的炒勺2013 | 来源:发表于2018-12-12 09:40 被阅读91次
    timg.jpg

    项目中有个需求就是使用微信扫描二维码打开app.跳转到指定页面,这里我用的是URL Scheme简单做下记录

    image.png image.png

    这里我自定义了一个GHLink做为Scheme

    写好之后想看下是否是生效可以把app放在后台,打开safari在地址栏输入
    GHLink://如果能唤起app,代表设置成功,点击打开可以唤起app

    WechatIMG4.jpeg

    如果想在链接中传参可以以这样的格式GHLink://?key=value
    例如

    GHLink://?message=success
    

    接下我们在线生成一个二维码实验下,二维码生成

    image.png

    在空白处输入链接,然后生成二维码

    回到app中,在appDelegate中使用一下方法接收传过来的字段

    application: openURL:(NSURL *)url sourceApplication: annotation:
    

    备注针对于openURL 苹果一共推出三个方法,分别是:

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url NS_DEPRECATED_IOS(2_0, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED;
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED;
    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options NS_AVAILABLE_IOS(9_0); // no equiv. notification. return NO if the application can't open for some reason
    

    3个回调的功能基本一样,
    不同之处:
    A回调是在iOS2.0的时候推出的,参数只有url。
    B回到是在iOS4.2的时候推出的,参数有url sourceApplication annotation.
    C回调是iOS9.0的时候推出


    我们在使用最后一个方法,在方法中加一个alert方便我们查看接收到的参数

    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options NS_AVAILABLE_IOS(9_0) {
    
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:[url scheme] message:[url query] delegate:nil cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil];
        [alert show];
        return YES;
       
    }
    
    

    最后打开相机扫描刚才生成的二维码,检查是否成功接收到参数


    demo

    相关文章

      网友评论

        本文标题:iOS 利用URL Scheme从微信唤起APP尝试

        本文链接:https://www.haomeiwen.com/subject/uuxgcqtx.html