[发明专利]在IOS应用内调用函数的方法及系统在审
申请号: | 201810654123.5 | 申请日: | 2018-06-22 |
公开(公告)号: | CN109144601A | 公开(公告)日: | 2019-01-04 |
发明(设计)人: | 张超然 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 调用函数 预置格式 拼接 携带 参数转换 开发效率 传递 应用 | ||
本发明提供了一种在IOS应用内调用函数的方法及系统,其中的方法包括:本地端判断所述JS函数是否携带有参数;如果携带有参数,首先将参数转换成预置格式的数据,然后将预置格式的数据与JS函数名拼接为JS语句,将拼接的JS语句传递给所述JS端,由JS端执行JS函数;如果没有携带参数,直接根据JS函数生成JS语句,并将JS语句传递给所述JS端,由JS端执行JS函数。本发明实施例可提高APP开发效率。
技术领域
本发明涉及互联网技术领域,特别是涉及一种在IOS应用内调用函数方法及系统。
背景技术
现有的在IOS(苹果公司开发的移动操作系统)应用(应用程序,Application、APP)内运行JS脚本(JavaScript一种直译式脚本语言)的方案,比如JSPatch(IOS APP热更新热修复平台),都是直接使用javascriptcore框架(苹果公司在iOS7引入的框架),这个框架是直接解释JS脚本进行执行,效率不高。同时JSPatch等方案面临着不支高级JS语法和不兼容的问题,不支持模块化开发,导致开发效率低下。
发明内容
为了提高APP开发效率,本发明实施例提供一种在IOS应用内调用函数的方法及系统。
本发明提供一种在IOS应用内调用函数的方法,用于将JS端配置为即时运行环境的基础上,实现本地端对JS函数的调用,所述方法包括:
本地端判断所述JS函数是否携带有参数;
如果携带有参数,首先将参数转换成预置格式的数据,然后将预置格式的数据与JS函数名拼接为JS语句,将拼接的JS语句传递给所述JS端,由JS端执行JS函数;
如果没有携带参数,直接根据JS函数生成JS语句,并将JS语句传递给所述JS端,由JS端执行JS函数。
在一种可选方式中,还包括:所述JS端对本地函数进行调用;
所述JS端对本地函数进行调用,包括:
所述JS端通过所述即时运行环境提供的消息传递接口,将待调用的本地函数名称和参数传递给所述本地端,由本地端执行所述本地函数。
在一种可选方式中,还包括:在所述JS端与所述本地端之间传递所述JS函数或本地函数的回调函数;
所述在所述JS端与所述本地端之间传递所述JS函数或本地函数的回调函数包括:
创建方为回调函数生成回调函数ID,并将回调函数与回调函数ID的映射存储于全局字典;
调用方调用回调函数时,将所述回调函数ID回传给创建方,创建方通过所述全局字典查找到回调函数ID对应的回调函数并执行;
其中,所述JS端与所述本地端的任一方为所述创建方、另一方为所述调用方。
在一种可选方式中,所述JS端通过承诺构造函数将回调函数传递给所述本地端;
所述JS端通过承诺构造函数将所述回调函数传递给所述本地端,包括:
所述JS端在所述承诺构造函数的执行函数中,分别为解决回调函数及拒绝回调函数生成对应的解决回调函数ID和拒绝回调函数ID,并将解决回调函数ID和拒绝回调函数ID传递给本地端;
所述本地端根据解决回调函数ID对解决回调函数和/或根据拒绝回调函数ID对拒绝回调函数进行调用。
在一种可选方式中,
所述JS函数的数据是由多个JS文件经过压缩工具整合得到的,其中,所述JS文件是通过编译器将高级JS语法的JS文件处理为简化JS语法的JS文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810654123.5/2.html,转载请声明来源钻瓜专利网。