iOS两个APP之间的数据传递和跳转

两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的。

首先假设现在我们有APP_1和APP_2


1.首先设置第一个APP的url地址



2.再设置第二个APP的url地址



3.注意设置白名单 

如果不填写则无法跳转,可能会提示下面

-canOpenURL: failed for URL: "baiduqianbao://" - error: "This app is not allowed to query for scheme baiduqianbao"


4.需要跳转的时候 【app_1】

      1、测试数据
   NSDictionary *payContent =[ NSDictionary dictionaryWithObjectsAndKeys : @"AAA" , @" Key1 " , @"BBB" , @" Key2 " , @" CCC " , @" Key3 " , nil ];

   2、Json转字符串 【注:这里我用的是类别方法,网上很多可以】
    NSString *paramaStr = [payPargumentIZC_JSONString];

   3、组装跳转Url,切记编码,这里楼主有被坑
     NSString *param = [ NSString stringWithFormat : @"AppJumpSecond://page2?param=%@" ,paramaStr];
    param = [param stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding ];

    4、跳转另一个平台
     NSURL * myURL = [ NSURL URLWithString :param];
     if ([[ UIApplication sharedApplication ] canOpenURL :myURL]) {
         // 已安装 唤醒
        [[ UIApplication sharedApplication ] openURL :myURL];
    } else {
         // 未安装
         NSLog ( @" 未检测到相关应用 " );

    }


注: param 参数构成

AppJumpSecond  跳转的目的app的Url——scheme

page2          指定跳转的页面

paramaStr      所传递的参数


5.接收传递的数据 【app_2】

在APP delegate的方法内拦截 并做相应的处理

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

{

   NSString *urlString = [urlabsoluteString];

   NSLog(@"string===%@",urlString);

}

如下图:


### UniApp 中实现两个应用之间相互跳转 在 UniApp 开发框架内,直接支持的应用间跳转功能较为有限。通常情况下,UniApp 提供的是同一应用内的页面导航能力[^2]。 对于不同应用间的跳转需求,可以通过 URL Scheme 或者 Deeplink 方式来达成目的。具体来说: #### 使用 URL Scheme 跳转 URL Scheme 是一种自定义协议的方式,允许通过特定格式的链接启动一个安装在同一设备上的应用程序并传递参数给目标应用处理。 - **注册 URL Scheme** 需要在每个待跳转的目标应用中配置对应的 URL Scheme,在 `manifest.json` 文件里设置 `"scheme"` 字段指定该应用可响应的 scheme 名称。 - **发起跳转请求** 当前应用可以构建带有相应 schema 的 URL 来触发跳转动作。例如要打开名为 `secondapp://` 的第二个应用,则可以在第一个应用中的 JavaScript 方法里这样写: ```javascript function jumpToSecondApp() { var url = 'secondapp://'; window.location.href = url; } ``` 此方法适用于 iOS Android 平台,并且能够携带额外的数据作为查询字符串附加到 URL 后面以便被接收方解析使用。 #### 使用 Deeplink 进行跨平台兼容性更好的跳转 Deeplinks 类似于增强版的 URL Schemes, 它们不仅限定了协议部分还包含了完整的路径结构以及可能存在的查询参数等信息。这使得 deeplinks 更加灵活多变也更易于维护管理。 为了确保最佳用户体验,建议采用 Universal Links (iOS) / App Links(Android),这些技术可以让操作系统自动识别正确的关联应用而无需用户手动选择,默认会优先尝试唤起已安装的应用;如果未找到匹配项则引导至网页端展示内容。 以上两种方案都需要提前规划好双方应用之间的交互逻辑与数据交换机制,同时也要注意安全性隐私保护方面的要求[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值