CN106980552A - 一种实现苹果操作系统应用之间通信的方法及系统 - Google Patents
一种实现苹果操作系统应用之间通信的方法及系统 Download PDFInfo
- Publication number
- CN106980552A CN106980552A CN201710191520.9A CN201710191520A CN106980552A CN 106980552 A CN106980552 A CN 106980552A CN 201710191520 A CN201710191520 A CN 201710191520A CN 106980552 A CN106980552 A CN 106980552A
- Authority
- CN
- China
- Prior art keywords
- operating system
- apple macintosh
- macintosh operating
- system application
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Abstract
本发明公开了一种实现苹果操作系统应用之间通信的方法及系统,该方法包括:当第一苹果操作系统应用被服务器唤醒时按照协议对构造好的要发送的数据、第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;向第二苹果操作系统应用发送组装好的数据;第二苹果操作系统获取第一苹果操作系统应用发送的数据并对其进行解析;对解析得到的待处理数据进行相应操作,并按照协议对操作结果进行组装;调用发送函数将组装好的数据发送给第一苹果操作系统应用;第一苹果操作系统应用对接收到的数据进行解析,从解析结果中获取操作结果。本发明技术方案是预先设置应用链接标识,通过应用链接标识就可以访问对应的应用,进行相应的操作。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种实现苹果操作系统应用之间通信的方法及系统。
背景技术
随着应用数量的增加,苹果公司为每个应用设立了沙盒机制(即SandBox),苹果操作系统(IOS)中的沙盒机制是一种安全体系,它规定了应用只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。在现有技术中,由于苹果操作系统应用的沙盒机制,两个应用之间是禁止访问的。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种实现苹果操作系统应用之间通信的方法及系统。
本发明提供了一种实现苹果操作系统应用之间通信的方法,在通信之前所述苹果操作系统应用设置配置文件,向操作系统注册对应的应用链接标识;当第一苹果操作系统应用被服务器唤醒时,所述方法包括:
步骤S1:所述第一苹果操作系统应用构造要发送的数据,并获取预设的第二苹果操作系统应用链接标识;
步骤S2:所述第一苹果操作系统应用按照协议对构造好的要发送的数据、所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
步骤S3:所述第一苹果操作系统应用将组装好的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送组装好的数据,所述第二苹果操作系统应用被唤醒,所述第一苹果操作系统应用自动挂起;
步骤S4:当所述第一苹果操作系统应用被唤醒且所述操作系统调用接收函数时,所述第一苹果操作系统应用从所述接收函数的参数中获取所述第二苹果操作系统应用发送的数据,对其进行解析,从解析结果中获取操作结果;
当所述第二苹果操作系统应用被唤醒时则所述方法包括:
步骤A1:当所述操作系统调用接收函数时,所述第二苹果操作系统应用从所述接收函数的参数中获取第一苹果操作系统应用发送的数据,并对获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
步骤A2:所述第二苹果操作系统应用对解析得到的待处理数据进行相应操作,并按照协议对操作结果进行组装;
步骤A3:所述第二苹果操作系统应用将组装好的数据作为参数通过调用发送函数,将组装好的数据发送给与所述第一苹果操作系统应用链接标识对应的第一苹果操作系统应用,所述第一苹果操作系统应用被唤醒,所述第二苹果操作系统应用自动挂起。
其中,所述步骤S2还包括:
步骤S2’:所述第一苹果操作系统应用判断所述第二苹果操作系统应用链接标识是否可用,是则继续,否则报错。
其中,所述步骤S2’具体为:所述第一苹果操作系统应用调用第一函数判断第二苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第二苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第二苹果操作系统应用链接标识不可用。
其中,所述步骤A2还包括:
步骤A2’:所述第二苹果操作系统应用判断解析得到的所述第一苹果操作系统应用链接标识是否可用,是则继续,否则报错。
其中,所述步骤A2’具体为:所述第二苹果操作系统应用调用第一函数判断第一苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第一苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第一苹果操作系统应用链接标识不可用。
其中,所述步骤S1中的第一苹果操作系统应用构造要发送的数据包括:所述第一苹果操作系统应用将所需参数按照键值对的形式拼接成一个字典,调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据。
其中,所述步骤S1中的获取预设的第二苹果操作系统应用链接标识包括:所述第一苹果操作系统应用从第二苹果操作系统应用的配置文件中读取第二苹果操作系统应用链接标识。
其中,所述步骤S2包括:所述第一苹果操作系统应用按照协议对所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据。
其中,所述步骤S3包括:所述第一苹果操作系统应用将组装好的数据进行URL编码,将编码后的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送编码后的数据,所述第二苹果操作系统应用被唤醒,所述第一苹果操作系统应用自动挂起。
其中,所述步骤S4中对其进行解析,从解析结果中获取操作结果包括:所述第一苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果。
其中,所述步骤A1中的对获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据包括:所述第二苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据。
其中,所述步骤A2中所述按照所述协议对操作结果进行组装包括:所述第二苹果操作系统应用按照协议对操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据。
本发明又提供了一种实现苹果操作系统应用之间通信的系统,包括第一苹果操作系统应用装置和第二苹果操作系统应用装置,所述第一苹果操作系统应用装置包括:
第一设置注册模块;用于在通信之前设置配置文件,向操作系统注册对应的第一应用链接标识;
第一构造模块,用于当所述第一苹果操作系统应用装置被服务器唤醒时构造要发送的数据;
第一获取模块,用于获取预设的第二苹果操作系统应用链接标识;
第一组装模块,用于按照协议对构造好的要发送的数据、所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
第一发送模块,用于将所述第一组装模块组装好的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用装置发送组装好的数据,所述第二苹果操作系统应用装置被唤醒,所述第一苹果操作系统应用装置自动挂起;
第二获取模块,用于当所述第一苹果操作系统应用装置被唤醒且所述操作系统调用接收函数时,从所述接收函数的参数中获取所述第二苹果操作系统应用装置发送的数据;
第一解析模块,用于对所述第二获取模块获取的数据进行解析,从解析结果中获取操作结果;
所述第二苹果操作系统应用装置包括:
第二设置注册模块,用于当所述第二苹果操作系统应用装置被唤醒时在通信之前设置配置文件,向操作系统注册对应的第二应用链接标识;
第三获取模块,用于当所述操作系统调用接收函数时,从所述接收函数的参数中获取第一苹果操作系统应用装置发送的数据;
第二解析模块,用于对所述第三获取模块获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
操作模块,用于对所述第二解析模块解析得到的待处理数据进行相应操作;
第二组装模块,用于按照所述协议对所述操作模块的操作结果进行组装;
第二发送模块,用于将所述第二组装模块组装好的数据作为参数通过调用所述发送函数,将组装好的数据发送给与所述第一苹果操作系统应用链接标识对应的第一苹果操作系统应用装置,所述第一苹果操作系统应用装置被唤醒,所述第二苹果操作系统应用装置自动挂起。
其中,所述第一苹果操作系统应用装置还包括:
第一判断模块,用于判断所述第二苹果操作系统应用链接标识是否可用;
第一报错模块,用于在所述第一判断模块判断为否时进行报错;
所述第一组装模块或所述第一发送模块用于在所述第一判断模块判断为是时进行工作。
其中,所述第一判断模块具体用于调用第一函数判断第二苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第二苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第二苹果操作系统应用链接标识不可用。
其中,所述第二苹果操作系统应用装置还包括:
第二判断模块,用于判断解析得到的所述第一苹果操作系统应用链接标识是否可用;
第二报错模块,用于在第二判断模块判断为否时进行报错;
所述第二组装模块或所述第二发送模块用于在所述第二判断模块判断为是时进行工作。
其中,所述第二判断模块具体用于调用第一函数判断第一苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第一苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第一苹果操作系统应用链接标识不可用。
其中,所述第一构造模块具体用于将所需参数按照键值对的形式拼接成一个字典,调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据。
其中,所述第一获取模块具体用于从第二苹果操作系统应用装置的配置文件中读取第二苹果操作系统应用链接标识。
其中,所述第一组装模块具体用于按照协议对所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据。
其中,所述第一发送模块具体用于将组装好的数据进行URL编码,将编码后的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用装置发送编码后的数据,所述第二苹果操作系统应用装置被唤醒,所述第一苹果操作系统应用装置自动挂起。
其中,所述第一解析模块具体用于将所述第二获取模块获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果。
其中,所述第二解析模块具体用于将所述第三获取模块获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据。
其中,所述第二组装模块具体用于按照协议对所述操作模块的操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据。
本发明与现有技术相比,具有以下优点:
本发明技术方案是预先设置通信参数(例如应用链接标识),通过应用链接标识就可以访问对应的应用,进行相应的操作,完成数据的传输,然后由第二苹果操作系统应用返回数据到第一苹果操作系统应用。
附图说明
图1为本发明实施例二提供的一种实现苹果操作系统应用之间通信的方法流程图;
图2为本发明实施例三提供的一种苹果操作系统中第一苹果操作系统应用的工作方法流程图;
图3为本发明实施例四提供的一种苹果操作系统中第二苹果操作系统应用的工作方法流程图;
图4为本发明实施例五提供的一种实现苹果操作系统应用之间通信的系统方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种实现苹果操作系统应用之间通信的方法,苹果操作系统应用的状态包括前台激活状态和后台挂起状态,如苹果操作系统应用为前台激活状态,则苹果操作系统应用为源应用,将要进行发送数据操作,数据发送完成之后苹果操作系统应用自动挂起此刻开始作为目标应用,如苹果操作系统应用为后台挂起状态,则苹果操作系统应用为目标应用,将要进行接收数据操作,当苹果操作系统应用接收到数据时被唤醒此刻开始作为源应用;在通信之前苹果操作系统应用设置配置文件,向操作系统注册对应的应用链接标识;
当第一苹果操作系统应用被服务器唤醒时,方法包括:
步骤S1:第一苹果操作系统应用构造要发送的数据,并获取预设的第二苹果操作系统应用链接标识;
具体的,在本实施例中,步骤S1包括:第一苹果操作系统应用将所需参数按照键值对的形式拼接成一个字典,调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据;第一苹果操作系统应用从第二苹果操作系统应用的配置文件中读取第二苹果操作系统应用链接标识;
步骤S2:第一苹果操作系统应用按照协议对构造好的要发送的数据、第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
具体的,步骤S2包括:第一苹果操作系统应用按照协议对第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据。
在本实施例中,步骤S2还包括:
步骤S2’:第一苹果操作系统应用判断第二苹果操作系统应用链接标识是否可用,是则继续,否则报错;
其中,步骤S2’可以在步骤S2之前执行也可在步骤S2之后执行;步骤S2’具体为:第一苹果操作系统应用调用第一函数判断第二苹果操作系统应用链接标识是否可用,如第一函数返回正确值则第二苹果操作系统应用链接标识可用,如第一函数返回错误值则第二苹果操作系统应用链接标识不可用;
步骤S3:第一苹果操作系统应用将组装好的数据作为参数通过调用发送函数向与第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送组装好的数据,第二苹果操作系统应用被唤醒,第一苹果操作系统应用自动挂起;
在本实施例中,步骤S3包括:第一苹果操作系统应用将组装好的数据进行URL编码,将编码后的数据作为参数通过调用发送函数向与第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送编码后的数据,第二苹果操作系统应用被唤醒,第一苹果操作系统应用自动挂起。
步骤S4:当第一苹果操作系统应用被唤醒且操作系统调用接收函数时,第一苹果操作系统应用从接收函数的参数中获取第二苹果操作系统应用发送的数据,对其进行解析,从解析结果中获取操作结果;
具体的,在本实施例中,从解析结果中获取操作结果包括:第一苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果;
当第二苹果操作系统应用被唤醒时则方法包括:
步骤A1:当操作系统调用接收函数时,第二苹果操作系统应用从接收函数的参数中获取第一苹果操作系统应用发送的数据,并对获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
在本实施例中步骤A1的解析过程具体为:第二苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
步骤A2:第二苹果操作系统应用对解析得到的待处理数据进行相应操作,并按照协议对操作结果进行组装;
本实施例中步骤A2中的组装过程包括:第二苹果操作系统应用按照协议对操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据;
具体的,在本实施例中,步骤A2还包括:
步骤A2’:第二苹果操作系统应用判断解析得到的第一苹果操作系统应用链接标识是否可用,是则继续,否则报错;
其中,步骤A2’可以在步骤A2之前执行也可在步骤A2之后执行;步骤A2’具体为:第二苹果操作系统应用调用第一函数判断第一苹果操作系统应用链接标识是否可用,如第一函数返回正确值则第一苹果操作系统应用链接标识可用,如第一函数返回错误值则第一苹果操作系统应用链接标识不可用;
步骤A3:第二苹果操作系统应用将组装好的数据作为参数通过调用发送函数,将组装好的数据发送给与第一苹果操作系统应用链接标识对应的第一苹果操作系统应用,第一苹果操作系统应用被唤醒,第二苹果操作系统应用自动挂起。
实施例二
本发明实施例二提供一种实现苹果操作系统应用之间通信的方法,在通信之前苹果操作系统应用设置配置文件,向操作系统注册对应的应用链接标识;如图1所示,包括:
步骤101:当第一苹果操作系统应用被服务器唤醒时,构造要发送的数据;
在本实施例中,第一苹果操作系统应用根据所需参数对数据进行拼接得到要发送的数据;所需参数包括:用户名、版本信息、应用ID值、服务器数据、操作类型、策略;构造过程具体为:第一苹果操作系统应用将所需参数按照key-value(键值对)的形式拼接成一个字典(在本示例中就是将用户名版本信息、应用ID值、服务器数据、操作类型、策略作为key,将对应的值作为value),调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据;具体的,本实施例中的转换函数为[NSJSONSerialization dataWithJSONObject:dicoptions:NSJSONWritingPrettyPrinted error:&parseError];
例如,在本实施例中,用户名为“Hdcffs”,版本信息为“1.0”,应用ID值为“https://uafmagdc.cloudentify.com/uafmanager/facets”,服务器数据为“bFctRFVlY0N6ZnB6SFdnQ2RMNzMxV3hJMzlhOVpOaDVXRmtENVJOM3dwRS5NVFE0TURRNU16QXlPREE0TXcuU0dSalptWnouU2tSS2FFcEVSWGRLU0ZwTlpGWm5lbVZGWkVKaE1VNU1UV3R3VEU1clJqQmFSMHB4VWxVNA”,操作类型为“Reg”,策略为“policy":{"accepted":[[{"aaid":["001B#0001"]}],[{"aaid":["001A#2121"]}],[{"aaid":["0018#0001"]}],[{"aaid":["D409#0301"]}],[{"aaid":["0014#0002"]}],[{"aaid":["0014#0003"]}],[{"aaid":["17EF#6010"]}],[{"aaid\\\":["04EF#04EF"]}],[{"aaid":["53EC#C002"]}],[{"aaid":["53EC#C101"]}],[{"aaid":["0035#0101"]}],[{"aaid":["0010#0003"]}],[{"aaid":["04EF#05EF"]}],[{"aaid":["53EC#C102"]}],[{"aaid":["001A#0001"]}],[{"aaid":["04EF#06EF"]}],[{"aaid":["096E#0004"]}]]}}”;
构造之后的数据为:{channaleBindings={},message="{"code":0,"jsondata":"[{"header":{"upv":{"major":1,"minor":0},"op":"Reg","appID":"https://uafmagdc.cloudentify.com/uafmanager/facets","serverData":"bFctRFVlY0N6ZnB6SFdnQ2RMNzMxV3hJMzlhOVpOaDVXRmtENVJOM3dwRS5NVFE0TURRNU16QXlPREE0TXcuU0dSalptWnouU2tSS2FFcEVSWGRLU0ZwTlpGWm5lbVZGWkVKaE1VNU1UV3R3VEU1clJqQmFSMHB4VWxVNA"},"challenge":"JDJhJDEwJHZMdVgzeEdBa1NLMkpLNkF0ZGJqRU8","username":"Hdcffs","policy":{"accepted":[[{"aaid":["001B#0001"]}],[{"aaid":["001A#2121"]}],[{"aaid":["0018#0001"]}],[{"aaid":["D409#0301"]}],[{"aaid":["0014#0002"]}],[{"aaid":["0014#0003"]}],[{"aaid":["17EF#6010"]}],[{"aaid":["04EF#04EF"]}],[{"aaid":["53EC#C002"]}],[{"aaid":["53EC#C101"]}],[{"aaid":["0035#0101"]}],[{"aaid":["0010#0003"]}],[{"aaid":["04EF#05EF"]}],[{"aaid":["53EC#C102"]}],[{"aaid":["001A#0001"]}],[{"aaid":["04EF#06EF"]}],[{"aaid":["096E#0004"]}]]}}]","msg":"Success!"}"};
步骤102:第一苹果操作系统应用获取预设的第二苹果操作系统应用链接标识;
具体的,在本实施例中,第一苹果操作系统应用从第二苹果操作系统应用的配置文件中读取第二苹果操作系统应用链接标识;
步骤103:第一苹果操作系统应用按照协议对构造好的要发送的数据、第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
在本实施例中,步骤103具体为:第一苹果操作系统应用按照协议对第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据,协议的格式为targetApp://x-callback-url/[op]?x-success=sourceApp://x-callback-url/[op]&x-source=sourceApp&x-error=sourceApp://x-callback-url/[op]&json=[],具体的,按照协议格式组装数据就是将相关数据(第二苹果操作系统应用链接标识、操作类型、第一苹果操作系统应用链接标识、操作成功后进行的具体操作、要发送的数据)进行替换,即将targetAPP替换为第二苹果操作系统应用链接标识;将[op]替换为具体的操作或操作类型,例如进行UAF注册操作则[op]替换为REG;将sourceApp替换为第一苹果操作系统应用链接标识;x-callback-url为固定写法,不进行替换操作,将[op]替换为操作成功后进行的具体操作;x-success、x-source、x-error为固定写法;将最后一个[op]替换为失败后进行的具体操作;将json=[]替换为json=要发送的数据;其中x-error、x-source参数是可以省略的;
例如,targetapp为“FTUAFClient”,x-success为“FTUAFRPDemo://x-callback-url/UAF_OPERATION_RESULT”,Json为“ewogICJtZXNzYWdlIiA6ICJ7XG4gIFwidWFmUHJvdG9jb2xNZXNzYWdlXCIgOiBc%0D%0AIlt7XFxcImhlYWRlclxcXCI6e1xcXCJ1cHZcXFwiOntcXFwibWFqb3JcXFwiOjEs%0D%0AXFxcIm1pbm9yXFxcIjowfSxcXFwib3BcXFwiOlxcXCJSZWdcXFwiLFxcXCJhcHBJ%0D%0ARFxcXCI6XFxcImh0dHBzOlxcXC9cXFwvdWFmbWFnZGMuY2xvdWRlbnRpZnkuY29t%0D%0AXFxcL3VhZm1hbmFnZXJcXFwvZmFjZXRzXFxcIixcXFwic2VydmVyRGF0YVxcXCI6%0D%0AXFxcIk4xOVlXWEpEZFc0emJVTTJaRUpNYTFCbFJqWm9ZbE5FVTIweWExcG1PRWxJ%0D%0AY3kxRVkxOXVhVWRFTkM1TlZGRTBUVVJWTkU1RVZYaE9SRTE1VGtFdVVqSmtibHBC%0D%0ATGxOclVrdGhSWEJGVWxoa1MxRjZWa2RaVnpGcllqQXhkRnBFUWxoU1YyUXlWVlpv%0D%0AVjFSWFJqWlZibEpVVmtaV01sVnJhRllcXFwifSxcXFwiY2hhbGxlbmdlXFxcIjpc%0D%0AXFwiSkRKaEpERXdKQzVGYW1kb01tZDBXRWd2UVhWTWF6UnRTVFV2UkhVXFxcIixc%0D%0AXFwidXNlcm5hbWVcXFwiOlxcXCJHZ2dkXFxcIixcXFwicG9saWN5XFxcIjp7XFxc%0D%0AImFjY2VwdGVkXFxcIjpbW3tcXFwiYWFpZFxcXCI6W1xcXCIwMDFCIzAwMDFcXFwi%0D%0AXX1dLFt7XFxcImFhaWRcXFwiOltcXFwiMDAxQSMyMTIxXFxcIl19XSxbe1xcXCJh%0D%0AYWlkXFxcIjpbXFxcIjAwMTgjMDAwMVxcXCJdfV0sW3tcXFwiYWFpZFxcXCI6W1xc%0D%0AXCJENDA5IzAzMDFcXFwiXX1dLFt7XFxcImFhaWRcXFwiOltcXFwiMDAxNCMwMDAy%0D%0AXFxcIl19XSxbe1xcXCJhYWlkXFxcIjpbXFxcIjAwMTQjMDAwM1xcXCJdfV0sW3tc%0D%0AXFwiYWFpZFxcXCI6W1xcXCIxN0VGIzYwMTBcXFwiXX1dLFt7XFxcImFhaWRcXFwi%0D%0AOltcXFwiMDRFRiMwNEVGXFxcIl19XSxbe1xcXCJhYWlkXFxcIjpbXFxcIjUzRUMj%0D%0AQzAwMlxcXCJdfV0sW3tcXFwiYWFpZFxcXCI6W1xcXCI1M0VDI0MxMDFcXFwiXX1d%0D%0ALFt7XFxcImFhaWRcXFwiOltcXFwiMDAzNSMwMTAxXFxcIl19XSxbe1xcXCJhYWlk%0D%0AXFxcIjpbXFxcIjAwMTAjMDAwM1xcXCJdfV0sW3tcXFwiYWFpZFxcXCI6W1xcXCIw%0D%0ANEVGIzA1RUZcXFwiXX1dLFt7XFxcImFhaWRcXFwiOltcXFwiNTNFQyNDMTAyXFxc%0D%0AIl19XSxbe1xcXCJhYWlkXFxcIjpbXFxcIjAwMUEjMDAwMVxcXCJdfV0sW3tcXFwi%0D%0AYWFpZFxcXCI6W1xcXCIwNEVGIzA2RUZcXFwiXX1dLFt7XFxcImFhaWRcXFwiOltc%0D%0AXFwiMDk2RSMwMDA0XFxcIl19XV19fV1cIlxufSIKfQ%3D%3D”;最后组装得到的数据为:FTUAFClient://x-callback-url/UAF_OPERATION?x-success=FTUAFRPDemo://x-callback-url/UAF_OPERATION_RESULT&json=ewogICJtZXNzYWdlIiA6ICJ7XG4gIFwidWFmUHJvdG9jb2xNZXNzYWdlXCIgOiBc%0D%0AIlt7XFxcImhlYWRlclxcXCI6e1xcXCJ1cHZcXFwiOntcXFwibWFqb3JcXFwiOjEs%0D%0AXFxcIm1pbm9yXFxcIjowfSxcXFwib3BcXFwiOlxcXCJSZWdcXFwiLFxcXCJhcHBJ%0D%0ARFxcXCI6XFxcImh0dHBzOlxcXC9cXFwvdWFmbWFnZGMuY2xvdWRlbnRpZnkuY29t%0D%0AXFxcL3VhZm1hbmFnZXJcXFwvZmFjZXRzXFxcIixcXFwic2VydmVyRGF0YVxcXCI6%0D%0AXFxcIk4xOVlXWEpEZFc0emJVTTJaRUpNYTFCbFJqWm9ZbE5FVTIweWExcG1PRWxJ%0D%0AY3kxRVkxOXVhVWRFTkM1TlZGRTBUVVJWTkU1RVZYaE9SRTE1VGtFdVVqSmtibHBC%0D%0ATGxOclVrdGhSWEJGVWxoa1MxRjZWa2RaVnpGcllqQXhkRnBFUWxoU1YyUXlWVlpv%0D%0AVjFSWFJqWlZibEpVVmtaV01sVnJhRllcXFwifSxcXFwiY2hhbGxlbmdlXFxcIjpc%0D%0AXFwiSkRKaEpERXdKQzVGYW1kb01tZDBXRWd2UVhWTWF6UnRTVFV2UkhVXFxcIixc%0D%0AXFwidXNlcm5hbWVcXFwiOlxcXCJHZ2dkXFxcIixcXFwicG9saWN5XFxcIjp7XFxc%0D%0AImFjY2VwdGVkXFxcIjpbW3tcXFwiYWFpZFxcXCI6W1xcXCIwMDFCIzAwMDFcXFwi%0D%0AXX1dLFt7XFxcImFhaWRcXFwiOltcXFwiMDAxQSMyMTIxXFxcIl19XSxbe1xcXCJh%0D%0AYWlkXFxcIjpbXFxcIjAwMTgjMDAwMVxcXCJdfV0sW3tcXFwiYWFpZFxcXCI6W1xc%0D%0AXCJENDA5IzAzMDFcXFwiXX1dLFt7XFxcImFhaWRcXFwiOltcXFwiMDAxNCMwMDAy%0D%0AXFxcIl19XSxbe1xcXCJhYWlkXFxcIjpbXFxcIjAwMTQjMDAwM1xcXCJdfV0sW3tc%0D%0AXFwiYWFpZFxcXCI6W1xcXCIxN0VGIzYwMTBcXFwiXX1dLFt7XFxcImFhaWRcXFwi%0D%0AOltcXFwiMDRFRiMwNEVGXFxcIl19XSxbe1xcXCJhYWlkXFxcIjpbXFxcIjUzRUMj%0D%0AQzAwMlxcXCJdfV0sW3tcXFwiYWFpZFxcXCI6W1xcXCI1M0VDI0MxMDFcXFwiXX1d%0D%0ALFt7XFxcImFhaWRcXFwiOltcXFwiMDAzNSMwMTAxXFxcIl19XSxbe1xcXCJhYWlk%0D%0AXFxcIjpbXFxcIjAwMTAjMDAwM1xcXCJdfV0sW3tcXFwiYWFpZFxcXCI6W1xcXCIw%0D%0ANEVGIzA1RUZcXFwiXX1dLFt7XFxcImFhaWRcXFwiOltcXFwiNTNFQyNDMTAyXFxc%0D%0AIl19XSxbe1xcXCJhYWlkXFxcIjpbXFxcIjAwMUEjMDAwMVxcXCJdfV0sW3tcXFwi%0D%0AYWFpZFxcXCI6W1xcXCIwNEVGIzA2RUZcXFwiXX1dLFt7XFxcImFhaWRcXFwiOltc%0D%0AXFwiMDk2RSMwMDA0XFxcIl19XV19fV1cIlxufSIKfQ%3D%3D;
步骤104:第一苹果操作系统应用判断获取的第二苹果操作系统应用链接标识是否可用,是则执行步骤105,否则报错;
具体的,在本实施例中,第一苹果操作系统应用调用第一函数判断第二苹果操作系统应用链接标识是否可用,如函数返回正确值则第二苹果操作系统应用链接标识可用,如函数返回错误值则第二苹果操作系统应用链接标识不可用;本实施例中的步骤104也可以在步骤103之前进行,即步骤104中判断为是时执行步骤103,步骤103执行之后执行步骤105;
步骤105:第一苹果操作系统应用将组装好的数据作为参数通过调用发送函数向与第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送组装好的数据,第二苹果操作系统应用被唤醒,第一苹果操作系统应用自动挂起;
具体的,在本实施例中,第一苹果操作系统应用将组装好的数据进行URL编码,调用发送函数[[UIApplication sharedApplication]openURL:targetAPPData]将编码后的数据发送给第二苹果操作系统应用,其中targetAPPData就是编码后的数据;
步骤106:当第二苹果操作系统应用被唤醒且操作系统调用接收函数时,第二苹果操作系统应用从接收函数的参数中获取第一苹果操作系统应用发送的数据,并对获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
具体的,在本实施例中,第二苹果操作系统应用对获取到的数据进行解析具体为:第二苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据。在本实施例中第二苹果操作系统应用在字符串中通过x-success、x-souece、json等参数字符提取参数数据,获取到需要的第一苹果操作系统应用链接标识、操作类型和具体的操作(json数据);
例如,在本实施例中,解析得到的第一苹果操作系统应用链接标识为:FTUAFRPDemo,待处理数据为:{uafResponse="{"code":0,"jsondata":"[{"header":{"upv":{"major":1,"minor":0},"op":"Reg","appID":"https://uafmagdc.cloudentify.com/uafmanager/facets","serverData":"MXpTNHJNMHlESWxDeUtNVUhTaXhiZzNkaDZLWUpVTEdDcC1ybU9XTTBRSS5NVFE0TURRNU1EZzJNVFF6TXcuVkdWemRERS5Ta1JLYUVwRVJYZEtSRUp3VG0xV2RscEVTazFUV0dSQ1lrWm5NbU51Y0V4WFF6a3hWbWsw"},"challenge":"JDJhJDEwJDBpNmVvZDJMSXdBbFg2cnpLWC91Vi4","username":"Test1","policy":{"accepted":[[{"aaid":["001B#0001"]}],[{"aaid":["001A#2121"]}],[{"aaid":["0018#0001"]}],[{"aaid":["D409#0301"]}],[{"aaid":["0014#0002"]}],[{"aaid":["0014#0003"]}],[{"aaid":["17EF#6010"]}],[{"aaid":["04EF#04EF"]}],[{"aaid":["53EC#C002"]}],[{"aaid":["53EC#C101"]}],[{"aaid":["0035#0101"]}],[{"aaid":["0010#0003"]}],[{"aaid":["04EF#05EF"]}],[{"aaid":["53EC#C102"]}],[{"aaid":["001A#0001"]}],[{"aaid":["04EF#06EF"]}],[{"aaid":["096E#0004"]}]],"disallowed":[{"aaid":["04ef#04ef"],"keyIDs":["NzJCQThENkYtMDI5NC00REQwLUE5NDYtMUY2MDE1QTk3RjBEMTYwOTE1MDQxOTIxNDk1ODYxMDU"]},{"aaid":["04ef#05ef"],"keyIDs":["REE2ODk0RkQtQUI3OS00OTY4LTlCQ0MtRThBNjEzMEY3QjU4MTYxMTMwMTA0NTU0MzA2MDE3NTg"]}]}}]","msg":"Success!"}"}
步骤107:第二苹果操作系统应用对解析得到的待处理数据进行相应操作;
例如,在本实施例中,第二苹果操作系统应用对用户名进行fido注册;
步骤108:第二苹果操作系统应用按照协议对操作结果进行组装;
具体的,步骤108包括:第二苹果操作系统应用按照协议对操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据;
在本实施例中,协议格式为:sourceAPP://x-callback-url/[op]?json=[],其中,SourceAPP为第一苹果操作系统应用的链接标识,x-callback-url为固定写法,op为操作类型,Json=[]为操作结果数据;组装过程具体为:将协议格式中的相关数据进行替换,然后进行URL编码;
例如,本实施例中的操作结果为:
第二苹果操作系统应用对操作结果进行组装得到的数据为:FTUAFRPDemo://x-callback-url/UAF_OPERATION_RESULT&json=ewogICJtZXNzYWdlIiA6IHsKICAgICJ1YWZSZXNwb25zZSIgOiBbCiAgICAgIHsK%0D%0AICAgICAgICAiYXNzZXJ0aW9ucyIgOiBbCiAgICAgICAgICB7CiAgICAgICAgICAg%0D%0AICJhc3NlcnRpb25TY2hlbWUiIDogIlVBRlYxVExWIiwKICAgICAgICAgICAgImFz%0D%0Ac2VydGlvbiIgOiAiQVQ2bUFnTS1sZ0VMTGdrQU1EUmxaaU13TldWbURpNEhBQUVB%0D%0ATVFrQUF3RUtMaUFBZ1dObjZoZ0t3aDhmZDRkeGYzX1h6d3V4VUFZVFo3elFydzVz%0D%0AMkIyLXNqb0pMamdBUkVFMk9EazBSa1F0UVVJM09TMDBPVFk0TFRsQ1EwTXRSVGhC%0D%0ATmpFek1FWTNRalU0TVRZeE1UTXdNVFUxTkRNNU5UWTROekl4TmpNTkxnZ0FrUUFB%0D%0AQUljQUFBQU1MZzRCTUlJQkNnS0NBUUVBenQ0M3BqSEd0U0VpdGx1aGt6S0duYmdH%0D%0AalVnTEFzQlN0VXQ1ZDlwN01BTFRhSlRQZWtreEVDSlZFSHRGcWlKaTFjUGoyTWQ0%0D%0AbVdIUnJKWDFJYkdQX09MT3VQQ1FqbHlhdGhhVVJhSkItb3duWWtPMlN5YmdBdTN1%0D%0AdnAxNmRWTUVaYnF4QTlSRmNxQ28xcjJXUE5FdmRza0R0YWl6OEtXMEwtMGs0eW8z%0D%0AM0ttNWZYejZ2U3dVZHFfcnFtNHNZajd3UDAzOGJEVXJJQk5ubEtOSmZLYndRUjdZ%0D%0AbGJhcnRZaXM3Q2xZTHJiNW1EN3ZMSktTWEJ4ZXdMclB5NTg2clMwTFdxT2wwdkZf%0D%0AcnVwc2JjaUp3c21OSHFwNDJ3LU9kWU1KNjJyYXJWZDBlbFRkRmFXbDlPaDRoV3Zu%0D%0ATXRyWGRfOXI1ZXNTRTRTNU1mWEtiQ01HMi1qYVl3SURBUUFCQ0Q0SUFRWXVCQUVF%0D%0AZ2dFQWtpNGFhc3RJMUEwRG1kNE8yVVJySjJQQ0o3LV9SUW43OEpCanRHTm1peW5N%0D%0Ac28xenRsbEE0RTFrMDMzdVhLQzVFSnFpODBsRk5rSmtfOE4yRTFrWnZSRHJPeDFP%0D%0AUkJiV2o1MVpvZGdWRDBEYVNSdDBucGQwdGhJbEVLRjdWMkVnVnZxaFRXUlFSbkw4%0D%0AQWs3ZzJGSG9FZTVneE1oTjVsNHRnRlhLcklQcFpBa1d5Mzg1QXVxeHFBNTF6UE9u%0D%0ARmZBTmp4dl9VWHk4cFNzSy1wWnY0Z2wzODhTNzl3eldMTG1DV05KMVpMQmR3S19I%0D%0AbTdhNVFXVTBXVjFSV254M3dtYkFaWmk2ZnNxUjQ5N1FmOTZSVFlpWjdGLXo3VmtL%0D%0Ac0lsYjZBVUpNMURCMHB2bXpUZzVkZWdxVDQ1N0RqRVIxbW9xUk45NzBOaGwxOUFT%0D%0ANERyZDhCdHlCQSIKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJmY1Bh%0D%0AcmFtcyIgOiAiZXdvZ0lDSmhjSEJKUkNJZ09pQWlhSFIwY0hNNlhDOWNMM1ZoWm0x%0D%0AaFoyUmpMbU5zYjNWa1pXNTBhV1o1TG1OdmJWd3ZkV0ZtYldGdVlXZGxjbHd2Wm1G%0D%0AalpYUnpJaXdLSUNBaVkyaGhibTVsYkVKcGJtUnBibWNpSURvZ2V3b0tJQ0I5TEFv%0D%0AZ0lDSm1ZV05sZEVsRUlpQTZJQ0pwYjNNNlluVnVaR3hsTFdsa09tTnZiUzVtZEhO%0D%0AaFptVXVSbFJWUVVaU1VFUmxiVzhpTEFvZ0lDSmphR0ZzYkdWdVoyVWlJRG9nSWtw%0D%0ARVNtaEtSRVYzU2toQ2IxbHJhM2RNYkdSclQxUmtjMUpFUm5aU2VrNU1ZMGRLVkZK%0D%0AWVZTSUtmUSIsCiAgICAgICAgImhlYWRlciIgOiB7CiAgICAgICAgICAic2VydmVy%0D%0ARGF0YSIgOiAiTTAxemRYWk9PVmhvTXpkdVFtUjBhRmt0VkVGbE1HeG5OamhTY21G%0D%0AM09WWXlUazV6YWxkNVRrWnVVUzVOVkZFMFRVUlJOVTFxVVROT2VrRjZUWGN1VTBk%0D%0AU2FscHRXUzVUYTFKTFlVVndSVkpZWkV0VFJVcDJWMWQwY21Rd2VITmFSM1JRVmtk%0D%0AU2VsVnJVa2RrYkVvMlZHdDRhbEl3Y0ZWVmJHaFciLAogICAgICAgICAgImFwcElE%0D%0AIiA6ICJodHRwczpcL1wvdWFmbWFnZGMuY2xvdWRlbnRpZnkuY29tXC91YWZtYW5h%0D%0AZ2VyXC9mYWNldHMiLAogICAgICAgICAgIm9wIiA6ICJSZWciLAogICAgICAgICAg%0D%0AInVwdiIgOiB7CiAgICAgICAgICAgICJtYWpvciIgOiAxLAogICAgICAgICAgICAi%0D%0AbWlub3IiIDogMAogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgXQog%0D%0AIH0sCiAgImVycm9yQ29kZSIgOiAiTk9fRVJST1IiCn0%3D;
步骤109:第二苹果操作系统应用判断解析得到的第一苹果操作系统应用链接标识是否可用,是则执行步骤110,否则报错;
具体的,在本实施例中,第二苹果操作系统应用调用第一函数判断第一苹果操作系统应用链接标识是否可用,如函数返回正确值则第一苹果操作系统应用链接标识可用,如函数返回错误值则第一苹果操作系统应用链接标识不可用;本实施例中的步骤109也可在步骤108之前执行,即步骤107执行之后执行步骤109,步骤109判断为是时执行步骤108,再执行步骤110;
步骤110:第二苹果操作系统应用将组装好的数据作为参数通过调用发送函数,将组装好的数据发送给与第一苹果操作系统应用链接标识对应的第一苹果操作系统应用,第一苹果操作系统应用被唤醒,第二苹果操作系统应用自动挂起;
具体的,在本实施例中,步骤110包括:第二苹果操作系统应用调用发送函数[[UIApplication sharedApplication]openURL:[NSURL URLWithString:backUrl]]将组装好的数据发送给第一苹果操作系统应用,其中backurl即为组装后的数据;
步骤111:当第一苹果操作系统应用被唤醒且操作系统调用接收函数时,第一苹果操作系统应用从接收函数的参数中获取第二苹果操作系统应用发送的数据,对其进行解析,从解析结果中获取操作结果;
在本实施例中,从解析结果中获取操作结果包括:第一苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果,步骤111的具体解析实现过程与步骤106相同,在此不再赘述;
在本实施例中,第一苹果操作系统应用接收到的数据为以下数据;
其中“NO_ERROR”为从解析结果中获取到的操作结果。
实施例三
本发明实施例三提供一种苹果操作系统中第一苹果操作系统应用的工作方法,当第一苹果操作系统应用被服务器唤醒时,如图2所示,本实施例的方法包括:
步骤201:第一苹果操作系统应用构造要发送的数据;
在本实施例中,步骤201包括:第一苹果操作系统应用将所需参数按照键值对的形式拼接成一个字典,调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据。
步骤202:第一苹果操作系统应用获取预设的第二苹果操作系统应用链接标识;
具体的,在本实施例中,第二苹果操作系统应用在通信之前设置配置文件,第二苹果操作系统应用向操作系统进行注册时在配置文件中添加相应的应用连接标识,第一苹果操作系统应用获取预先设置的第二苹果操作系统应用配置文件中的第二苹果操作系统应用链接标识;
步骤203:第一苹果操作系统应用按照协议对构造好的要发送的数据、第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
具体的,本实施例中的步骤203包括:第一苹果操作系统应用按照协议对第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据。
步骤204:第一苹果操作系统应用判断获取的第二苹果操作系统应用链接标识是否可用,是则执行步骤205,否则报错;
具体的,步骤204包括:第一苹果操作系统应用调用第一函数判断第二苹果操作系统应用链接标识是否可用,如第一函数返回正确值则第二苹果操作系统应用链接标识可用,如第一函数返回错误值则第二苹果操作系统应用链接标识不可用。
步骤205:第一苹果操作系统应用将组装好的数据作为参数通过调用发送函数向与第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送组装好的数据,第二苹果操作系统应用被唤醒,第一苹果操作系统应用自动挂起;
在本实施例中,步骤205包括:第一苹果操作系统应用将组装好的数据进行URL编码,将编码后的数据作为参数通过调用发送函数向与第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送编码后的数据,第二苹果操作系统应用被唤醒,第一苹果操作系统应用自动挂起。
步骤206:当第一苹果操作系统应用被唤醒且操作系统调用接收函数时,第一苹果操作系统应用从接收函数的参数中获取第二苹果操作系统应用发送的数据,对其进行解析,从解析结果中获取操作结果。
具体的,在本实施例中,步骤206中的对其进行解析,从解析结果中获取操作结果包括:第一苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果。
实施例四
本发明实施例四提供一种苹果操作系统中第二苹果操作系统应用的工作方法,当第二苹果操作系统应用被唤醒时,如图3所示,包括:
步骤301:当操作系统调用接收函数时,第二苹果操作系统应用从接收函数的参数中获取第一苹果操作系统应用发送的数据,并对获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
具体的,本实施例中步骤301的解析过程为:第二苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
步骤302:第二苹果操作系统应用对解析得到的待处理数据进行相应操作;
步骤303:第二苹果操作系统应用按照协议对操作结果进行组装;
在本实施例中,步骤303包括:第二苹果操作系统应用按照协议对操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据。
步骤304:第二苹果操作系统应用判断解析得到的第一苹果操作系统应用链接标识是否可用,是则执行步骤305,否则报错;
具体的,在本实施例中,步骤304包括:第二苹果操作系统应用调用第一函数判断第一苹果操作系统应用链接标识是否可用,如第一函数返回正确值则第一苹果操作系统应用链接标识可用,如第一函数返回错误值则第一苹果操作系统应用链接标识不可用。
步骤305:第二苹果操作系统应用将组装好的数据作为参数通过调用发送函数,将组装好的数据发送给与第一苹果操作系统应用链接标识对应的第一苹果操作系统应用,第一苹果操作系统应用被唤醒,第二苹果操作系统应用自动挂起。
实施例五
本发明实施例五提供一种实现苹果操作系统应用之间通信的系统,如图4所示,包括第一苹果操作系统应用装置41和第二苹果操作系统应用装置42,第一苹果操作系统应用装置41包括:
第一设置注册模块410;用于在通信之前设置配置文件,向操作系统注册对应的第一应用链接标识;
第一构造模块411,用于当第一苹果操作系统应用装置41被服务器唤醒时构造要发送的数据;
具体的,在本实施例中,第一构造模块411具体用于将所需参数按照键值对的形式拼接成一个字典,调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据。
第一获取模块412,用于获取预设的第二苹果操作系统应用链接标识;
优选的,在本实施例中,第一获取模块412具体用于从第二苹果操作系统应用装置的配置文件中读取第二苹果操作系统应用链接标识。
第一组装模块413,用于按照协议对构造好的要发送的数据、第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
在本实施例中,第一组装模块413具体用于按照协议对第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据。
第一发送模块414,用于将第一组装模块413组装好的数据作为参数通过调用发送函数向与第二苹果操作系统应用链接标识对应的第二苹果操作系统应用装置42发送组装好的数据,第二苹果操作系统应用装置42被唤醒,第一苹果操作系统应用装置41自动挂起;
具体的,本实施例中的第一发送模块414具体用于将组装好的数据进行URL编码,将编码后的数据作为参数通过调用发送函数向与第二苹果操作系统应用链接标识对应的第二苹果操作系统应用装置42发送编码后的数据,第二苹果操作系统应用装置42被唤醒,第一苹果操作系统应用装置41自动挂起。
第二获取模块415,用于当第一苹果操作系统应用装置41被唤醒且操作系统调用接收函数时,从接收函数的参数中获取第二苹果操作系统应用装置42发送的数据;
第一解析模块416,用于对第二获取模块415获取的数据进行解析,从解析结果中获取操作结果;
在本实施例中,第一解析模块416具体用于将第二获取模块415获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果。
第二苹果操作系统应用装置42包括:
第二设置注册模块421,用于当第二苹果操作系统应用装置42被唤醒时在通信之前设置配置文件,向操作系统注册对应的第二应用链接标识;
第三获取模块422,用于当操作系统调用接收函数时,从接收函数的参数中获取第一苹果操作系统应用装置41发送的数据;
第二解析模块423,用于对第三获取模块422获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
在本实施例中,第二解析模块423具体用于将第三获取模块422获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据。
操作模块424,用于对第二解析模块423解析得到的待处理数据进行相应操作;
第二组装模块425,用于按照协议对操作模块424的操作结果进行组装;
具体的,在本实施例中,第二组装模块425具体用于按照协议对操作模块424的操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据。
第二发送模块426,用于将第二组装模块425组装好的数据作为参数通过调用发送函数,将组装好的数据发送给与第一苹果操作系统应用链接标识对应的第一苹果操作系统应用装置41,第一苹果操作系统应用装置41被唤醒,第二苹果操作系统应用装置42自动挂起。
在本实施例中,第一苹果操作系统应用装置41还包括:
第一判断模块,用于判断第二苹果操作系统应用链接标识是否可用;
优选的,第一判断模块具体用于调用第一函数判断第二苹果操作系统应用链接标识是否可用,如第一函数返回正确值则第二苹果操作系统应用链接标识可用,如第一函数返回错误值则第二苹果操作系统应用链接标识不可用。
第一报错模块,用于在第一判断模块判断为否时进行报错;
第一组装模块413或第一发送模块414用于在第一判断模块判断为是时进行工作。
在本实施例中,第二苹果操作系统应用装置42还包括:
第二判断模块,用于判断解析得到的第一苹果操作系统应用链接标识是否可用;
优选的,第二判断模块具体用于调用第一函数判断第一苹果操作系统应用链接标识是否可用,如第一函数返回正确值则第一苹果操作系统应用链接标识可用,如第一函数返回错误值则第一苹果操作系统应用链接标识不可用。
第二报错模块,用于在第二判断模块判断为否时进行报错;
第二组装模块425或第二发送模块426用于在第二判断模块判断为是时进行工作。
本发明实施例的技术方案是预先设置通信参数(例如应用链接标识),通过应用链接标识就可以访问对应的应用,进行相应的操作,完成数据的传输,然后由第二苹果操作系统应用返回数据到第一苹果操作系统应用。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (24)
1.一种实现苹果操作系统应用之间通信的方法,其特征在于,在通信之前所述苹果操作系统应用设置配置文件,向操作系统注册对应的应用链接标识;当第一苹果操作系统应用被服务器唤醒时,所述方法包括:
步骤S1:所述第一苹果操作系统应用构造要发送的数据,并获取预设的第二苹果操作系统应用链接标识;
步骤S2:所述第一苹果操作系统应用按照协议对构造好的要发送的数据、所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
步骤S3:所述第一苹果操作系统应用将组装好的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送组装好的数据,所述第二苹果操作系统应用被唤醒,所述第一苹果操作系统应用自动挂起;
步骤S4:当所述第一苹果操作系统应用被唤醒且所述操作系统调用接收函数时,所述第一苹果操作系统应用从所述接收函数的参数中获取所述第二苹果操作系统应用发送的数据,对其进行解析,从解析结果中获取操作结果;
当所述第二苹果操作系统应用被唤醒时则所述方法包括:
步骤A1:当所述操作系统调用接收函数时,所述第二苹果操作系统应用从所述接收函数的参数中获取第一苹果操作系统应用发送的数据,并对获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
步骤A2:所述第二苹果操作系统应用对解析得到的待处理数据进行相应操作,并按照协议对操作结果进行组装;
步骤A3:所述第二苹果操作系统应用将组装好的数据作为参数通过调用发送函数,将组装好的数据发送给与所述第一苹果操作系统应用链接标识对应的第一苹果操作系统应用,所述第一苹果操作系统应用被唤醒,所述第二苹果操作系统应用自动挂起。
2.如权利要求1所述的方法,其特征在于,所述步骤S2还包括:
步骤S2’:所述第一苹果操作系统应用判断所述第二苹果操作系统应用链接标识是否可用,是则继续,否则报错。
3.如权利要求2所述的方法,其特征在于,所述步骤S2’具体为:所述第一苹果操作系统应用调用第一函数判断第二苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第二苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第二苹果操作系统应用链接标识不可用。
4.如权利要求1所述的方法,其特征在于,所述步骤A2还包括:
步骤A2’:所述第二苹果操作系统应用判断解析得到的所述第一苹果操作系统应用链接标识是否可用,是则继续,否则报错。
5.如权利要求4所述的方法,其特征在于,所述步骤A2’具体为:所述第二苹果操作系统应用调用第一函数判断第一苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第一苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第一苹果操作系统应用链接标识不可用。
6.如权利要求1所述的方法,其特征在于,所述步骤S1中的第一苹果操作系统应用构造要发送的数据包括:所述第一苹果操作系统应用将所需参数按照键值对的形式拼接成一个字典,调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据。
7.如权利要求1所述的方法,其特征在于,所述步骤S1中的获取预设的第二苹果操作系统应用链接标识包括:所述第一苹果操作系统应用从第二苹果操作系统应用的配置文件中读取第二苹果操作系统应用链接标识。
8.如权利要求1所述的方法,其特征在于,所述步骤S2包括:所述第一苹果操作系统应用按照协议对所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据。
9.如权利要求1所述的方法,其特征在于,所述步骤S3包括:所述第一苹果操作系统应用将组装好的数据进行URL编码,将编码后的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用发送编码后的数据,所述第二苹果操作系统应用被唤醒,所述第一苹果操作系统应用自动挂起。
10.如权利要求1所述的方法,其特征在于,所述步骤S4中对其进行解析,从解析结果中获取操作结果包括:所述第一苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果。
11.如权利要求1所述的方法,其特征在于,所述步骤A1中的对获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据包括:所述第二苹果操作系统应用将获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据。
12.如权利要求1所述的方法,其特征在于,所述步骤A2中所述按照所述协议对操作结果进行组装包括:所述第二苹果操作系统应用按照协议对操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据。
13.一种实现苹果操作系统应用之间通信的系统,其特征在于,包括第一苹果操作系统应用装置和第二苹果操作系统应用装置,所述第一苹果操作系统应用装置包括:
第一设置注册模块;用于在通信之前设置配置文件,向操作系统注册对应的第一应用链接标识;
第一构造模块,用于当所述第一苹果操作系统应用装置被服务器唤醒时构造要发送的数据;
第一获取模块,用于获取预设的第二苹果操作系统应用链接标识;
第一组装模块,用于按照协议对构造好的要发送的数据、所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识进行组装;
第一发送模块,用于将所述第一组装模块组装好的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用装置发送组装好的数据,所述第二苹果操作系统应用装置被唤醒,所述第一苹果操作系统应用装置自动挂起;
第二获取模块,用于当所述第一苹果操作系统应用装置被唤醒且所述操作系统调用接收函数时,从所述接收函数的参数中获取所述第二苹果操作系统应用装置发送的数据;
第一解析模块,用于对所述第二获取模块获取的数据进行解析,从解析结果中获取操作结果;
所述第二苹果操作系统应用装置包括:
第二设置注册模块,用于当所述第二苹果操作系统应用装置被唤醒时在通信之前设置配置文件,向操作系统注册对应的第二应用链接标识;
第三获取模块,用于当所述操作系统调用接收函数时,从所述接收函数的参数中获取第一苹果操作系统应用装置发送的数据;
第二解析模块,用于对所述第三获取模块获取的数据进行解析得到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据;
操作模块,用于对所述第二解析模块解析得到的待处理数据进行相应操作;
第二组装模块,用于按照所述协议对所述操作模块的操作结果进行组装;
第二发送模块,用于将所述第二组装模块组装好的数据作为参数通过调用所述发送函数,将组装好的数据发送给与所述第一苹果操作系统应用链接标识对应的第一苹果操作系统应用装置,所述第一苹果操作系统应用装置被唤醒,所述第二苹果操作系统应用装置自动挂起。
14.如权利要求13所述的系统,其特征在于,所述第一苹果操作系统应用装置还包括:
第一判断模块,用于判断所述第二苹果操作系统应用链接标识是否可用;
第一报错模块,用于在所述第一判断模块判断为否时进行报错;
所述第一组装模块或所述第一发送模块用于在所述第一判断模块判断为是时进行工作。
15.如权利要求14所述的系统,其特征在于,所述第一判断模块具体用于调用第一函数判断第二苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第二苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第二苹果操作系统应用链接标识不可用。
16.如权利要求13所述的系统,其特征在于,所述第二苹果操作系统应用装置还包括:
第二判断模块,用于判断解析得到的所述第一苹果操作系统应用链接标识是否可用;
第二报错模块,用于在第二判断模块判断为否时进行报错;
所述第二组装模块或所述第二发送模块用于在所述第二判断模块判断为是时进行工作。
17.如权利要求16所述的系统,其特征在于,所述第二判断模块具体用于调用第一函数判断第一苹果操作系统应用链接标识是否可用,如所述第一函数返回正确值则第一苹果操作系统应用链接标识可用,如所述第一函数返回错误值则第一苹果操作系统应用链接标识不可用。
18.如权利要求13所述的系统,其特征在于,所述第一构造模块具体用于将所需参数按照键值对的形式拼接成一个字典,调用转换函数将拼接后的字典转为json格式的字符串得到要发送的数据。
19.如权利要求13所述的系统,其特征在于,所述第一获取模块具体用于从第二苹果操作系统应用装置的配置文件中读取第二苹果操作系统应用链接标识。
20.如权利要求13所述的系统,其特征在于,所述第一组装模块具体用于按照协议对所述第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识、构造好的要发送的数据进行顺序拼接得到组装好的数据。
21.如权利要求13所述的系统,其特征在于,所述第一发送模块具体用于将组装好的数据进行URL编码,将编码后的数据作为参数通过调用发送函数向与所述第二苹果操作系统应用链接标识对应的第二苹果操作系统应用装置发送编码后的数据,所述第二苹果操作系统应用装置被唤醒,所述第一苹果操作系统应用装置自动挂起。
22.如权利要求13所述的系统,其特征在于,所述第一解析模块具体用于将所述第二获取模块获取到的数据转化为字符串,通过参数字符从字符串中获取操作结果。
23.如权利要求13所述的系统,其特征在于,所述第二解析模块具体用于将所述第三获取模块获取到的数据转化为字符串,通过参数字符从字符串中提取到第二苹果操作系统应用链接标识、第一苹果操作系统应用链接标识和待处理数据。
24.如权利要求13所述的系统,其特征在于,所述第二组装模块具体用于按照协议对所述操作模块的操作结果进行顺序拼接,将拼接好的数据进行URL编码得到组装好的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710191520.9A CN106980552A (zh) | 2017-03-28 | 2017-03-28 | 一种实现苹果操作系统应用之间通信的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710191520.9A CN106980552A (zh) | 2017-03-28 | 2017-03-28 | 一种实现苹果操作系统应用之间通信的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106980552A true CN106980552A (zh) | 2017-07-25 |
Family
ID=59339074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710191520.9A Pending CN106980552A (zh) | 2017-03-28 | 2017-03-28 | 一种实现苹果操作系统应用之间通信的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106980552A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159238A (zh) * | 2019-12-26 | 2020-05-15 | 厦门市美亚柏科信息股份有限公司 | 一种基于ios系统缓存文件取证方法、终端设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880514B (zh) * | 2012-10-26 | 2016-03-30 | 小米科技有限责任公司 | 一种调用应用程序的方法和装置 |
CN103034546B (zh) * | 2012-12-17 | 2016-08-24 | 北京奇虎科技有限公司 | iOS系统中应用程序间通信的方法及装置 |
CN102981915B (zh) * | 2012-12-17 | 2016-08-24 | 北京奇虎科技有限公司 | 一种应用程序间通信方法及装置 |
CN106156601A (zh) * | 2015-04-28 | 2016-11-23 | 高德软件有限公司 | iOS平台scheme传送方法、装置、服务器及系统 |
-
2017
- 2017-03-28 CN CN201710191520.9A patent/CN106980552A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880514B (zh) * | 2012-10-26 | 2016-03-30 | 小米科技有限责任公司 | 一种调用应用程序的方法和装置 |
CN103034546B (zh) * | 2012-12-17 | 2016-08-24 | 北京奇虎科技有限公司 | iOS系统中应用程序间通信的方法及装置 |
CN102981915B (zh) * | 2012-12-17 | 2016-08-24 | 北京奇虎科技有限公司 | 一种应用程序间通信方法及装置 |
CN106156601A (zh) * | 2015-04-28 | 2016-11-23 | 高德软件有限公司 | iOS平台scheme传送方法、装置、服务器及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159238A (zh) * | 2019-12-26 | 2020-05-15 | 厦门市美亚柏科信息股份有限公司 | 一种基于ios系统缓存文件取证方法、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106559251B (zh) | 一种基于yang模型的编译方法、及对应的接口、组件和系统 | |
CN110348201B (zh) | 一种设备安全策略的配置方法及装置 | |
CN101478458B (zh) | 一种sip协议安全性测试方法 | |
CN110933095A (zh) | 一种报文解析方法及装置 | |
CN103124267B (zh) | 通过移动终端进行登录/注册的方法、系统和云端服务器 | |
CN102123158A (zh) | 一种实现网络数据处理的方法和系统 | |
CN103124266B (zh) | 移动终端及通过其进行登录的方法、系统和云端服务器 | |
CN103248525A (zh) | 配置网络资源的方法及装置 | |
CN106656998B (zh) | 服务器通信方法及装置 | |
CN108076017A (zh) | 一种数据包的协议解析方法及装置 | |
CN110445815A (zh) | 一种工控协议深度解析方法 | |
CN106487712B (zh) | 用于接入多个外部系统的方法、装置及服务器 | |
CN106209503A (zh) | Rpc接口测试方法及系统 | |
CN101894059A (zh) | 一种运行状态的检测方法及系统 | |
CN106941501A (zh) | 一种数据通信方法及装置 | |
CN103152401B (zh) | 移动终端及通过其进行登录的方法、系统和云端服务器 | |
CN103312532A (zh) | 用于物联网网关的故障自动排除方法及系统 | |
CN107172579A (zh) | 一种通过蓝牙信息控制蓝牙受控终端的方法及系统 | |
CN113726762A (zh) | 基于配置文件的物联网设备协议解析方法 | |
CN109783357A (zh) | 测试应用程序的方法及装置、计算机设备、存储介质 | |
KR100959836B1 (ko) | 링크를 통한 클라이언트 프로비저닝 | |
CN107040613A (zh) | 一种报文传输方法及系统 | |
CN103945287B (zh) | 一种接口机处理消息的方法和接口机 | |
CN108494613B (zh) | 一种警用数字集群系统间互联互通的测试系统和方法 | |
CN106980552A (zh) | 一种实现苹果操作系统应用之间通信的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170725 |