Appdelegate.m中处理多个handleopenURL,微信支付和微信分享同时存在

本文详细介绍了在iOS应用中如何使用URL Scheme处理微信支付、微信分享、支付宝支付及QQ分享。通过判断URL Scheme字符串,实现不同场景的功能调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS url scheme里面如果有多个三方库的时候,需要判断各个三方库的字符,其他的还好说,微信支付和微信分享的时候,都有com.tencent.xin字符串,经过网上查询,微信可以用下面的字符串pay判断,还有下面的QQ的判断,application:(UIApplication *)application handleOpenURL:(NSURL *)urlios9之前用的这个方法。

 (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options{

    NSLog(@"openUrl:%@   options:%@   ",url,options);
    NSString *urlStr = [options objectForKey:@"UIApplicationOpenURLOptionsSourceApplicationKey"];
    if ([urlStr isEqualToString:@"com.tencent.xin"])
    {
        if ([[url absoluteString] containsString:@"pay"]) {
            // 微信支付
            [WXApi handleOpenURL:url delegate:self];
        } else {
            //微信分享
            [JSHAREService handleOpenUrl:url];
        }

    }
    if ([urlStr isEqualToString:@"com.alipay.iphoneclient"])
    {
        __weak typeof(self) wself = self;
        //  支付宝支付
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic){
            [wself processPayResult:resultDic];
            NSLog(@"Alipay success : result = %@",resultDic);//返回的支付结果
        }];
    }else if ([url.host isEqualToString:@"safepay"]) {
         __weak typeof(self) wself = self;
        //跳转支付宝钱包进行支付,处理支付结果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            [wself processPayResult:resultDic];
            NSLog(@"result = %@",resultDic);
        }];
    }
    //QQ分享
    if ([urlStr isEqualToString:@"com.tencent.mqq"]) {
          [JSHAREService handleOpenUrl:url];
    }
    return YES;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值