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]) >= ? YES : NO;
}

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

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

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

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

app之间的跳转和传参问题的更多相关文章

  1. js 页面之间的跳转、传参以及返回上一页

    js实现html 页面之间的跳转传参以及返回上一页的相关知识点 一.页面之间的跳转传参 1.在页面之间跳转的方式有两种: window.location.href="test.html?nu ...

  2. 微信小程序和微信小程序之间的跳转和传参示例代码附讲解

    一:微信小程序跳转 使用限制 需要用户触发跳转 从 2.3.0 版本开始,若用户未点击小程序页面任意位置,则开发者将无法调用此接口自动跳转至其他小程序. 需要用户确认跳转 从 2.3.0 版本开始,在 ...

  3. (day68)Vue-CLI项目、页面跳转和传参、生命周期钩子

    目录 一.Vue-CLI (一)环境搭建 (二)项目的创建 (三)项目目录结构 (四)Vue组件(.vue文件) (五)全局脚本文件main.js(项目入口) (六)Vue请求生命周期 二.页面跳转和 ...

  4. flutter页面间跳转和传参-Navigator的使用

    flutter页面间跳转和传参-Navigator的使用 概述 flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由. 命名路由 这种路由需要一开始现在创建App的时候定义 new M ...

  5. JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参

    <script src="jquery.min.js" type="text/javascript"></script> <scr ...

  6. iOS中两个APP之间的跳转和通信

    app间的跳转 一:在第一个app首先要做下面这些操作: 1.在info.plist文件中的Information Property List下添加一项:URL types. 2.点开URL type ...

  7. iOS APP之间到跳转,以及热门应用,手机自带到应用跳转

    应用之间的跳转 在第一个APP中,做如下操作:1.在info.plist文件中的"信息属性列表"下添加一项:"URL类型"; 2.点开"URL类型&q ...

  8. 微信小程序开发:学习笔记[8]——页面跳转及传参

    微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层 ...

  9. spring mvc controller间跳转 重定向 传参(转)

    spring mvc controller间跳转 重定向 传参 url:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ ...

随机推荐

  1. java 多线程学习笔记(一) -- 计算密集型任务

    最近在看<Java虚拟机并发编程>,在此记录一些重要的东东. 线程数的确定:1. 获取系统可用的处理器核心数:int numOfCores = Runtime.getRuntime().a ...

  2. 《OD学微信开发》微信小程序入门示例

    官网地址: https://mp.weixin.qq.com/debug/wxadoc/dev/ 一.文件结构 小程序包含一个描述整体程序的 app 和多个描述各自页面的 page. .js后缀的是脚 ...

  3. cogs 915. 隐藏口令

    915. 隐藏口令 ★★☆   输入文件:hidden.in   输出文件:hidden.out   简单对比时间限制:1 s   内存限制:128 MB USACO/hidden(译 by Feli ...

  4. Java基础--常用API--集合类相关API

    一.泛型 1.泛型的本质是将类型参数化,即将数据类型作为参数. 2.泛型可以在编译期进行检查,其所有的强制转换是隐式且自动的,提高了代码的安全性. 3.泛型可以用在类(泛型类).接口(泛型接口).方法 ...

  5. PyCharm专业版安装(2018年Windows版)

    友情提示: 本教程仅供学习交流使用,如需商业用途,强烈建议使用官方正式版.(官网正式链接为:https://www.jetbrains.com/pycharm/) 当然网上有很多其他激活教程,我看到的 ...

  6. springIOC源码解析之BeanDefinition的注册

    ApplicationContext类结构 context是一个存储上下文结构的东西,里面会引用BeanFactory  BeanFactory类结构 我们从这句代码开始分析,(本文spring采用的 ...

  7. Vue 3 --安装脚手架、过滤器、生命周期的钩子函数、vue-router基本使用

    一.安装脚手架 1.下载node.js,本文下载版本为node-v8.12.0-x64.msi,一键式安装. 2.安装完成后,打开终端,输入node,可进入node环境(两次ctrl+c退出),如下图 ...

  8. flush logs时做的操作

    flush logs时做的操作:  对于一般查询日志和慢日志,先关闭文件再打开  对于binlog,关闭当前的,开始用下一个新的  用错误日志文件的话,先关闭再打开flush logs可以对一般查询日 ...

  9. UnityError 切换场景灯光变黑问题解决

    编辑器在当前场景时,它的灯光是已经渲染好了,但重新加载的时候灯光没有进行渲染 解决方法如下: Window>>lighting>>Scene面板>>右下角build ...

  10. php函数超实用

    DateTime DateTime::addDateTime::diffDateTime::formatDateTime::modifyDateTime::sub... * DateInterval ...