关于iso:常用日期和时间标准对比HTML-ISO-8601-RFC-3339-RFC-5322

1. HTML, ISO 8601, RFC 3339, RFC 5322 比照日期和工夫,对于不同零碎和平台之间的数据交换和互操作至关重要。本文将比照 HTML 规范、ISO 8601、RFC 3339 和 RFC 5322,为读者提供参考。 表格文字版见文末-附1.1. 规范链接HTML 规范: https://html.spec.whatwg.org/multipage/common-microsyntaxes.h...ISO 8601: https://www.iso.org/iso-8601-date-and-time-format.htmlRFC 3339: https://datatracker.ietf.org/doc/html/rfc3339RFC 5322: https://datatracker.ietf.org/doc/html/rfc5322#section-3.31.2. 具体格局比照规范HTML/ISO 8601/RFC 3339RFC 5322日期YYYY-MM-DDDD MM YYYY日期工夫YYYY-MM-DDTHH:mm:ssDD MM YYYY HH:mm:ss带时区YYYY-MM-DDTHH:mm:ssZ/带偏移量YYYY-MM-DDTHH:mm:ss±HH:mmDD MM YYYY HH:mm:ss ±hhmmhhmm: hh * 60 + mmZ 示意 时区 UTC (A U+005A LATIN CAPITAL LETTER Z character (Z), allowed only if the time zone is UTC)每个规范都有多种日期,日期工夫,时区,偏移量的表达方式,表格中选取其中一种。HTML 规范、ISO 8601、RFC 3339 的工夫格局存在交加,详情可见下文。2. HTML, ISO 8601, RFC 3339 Date-Times 格局比照 ...

March 1, 2024 · 1 min · jiezi

关于iso:汽车行业必读ISO-26262和ASIL安全等级解读与攻略

ISO 26262,名称为“路线车辆——性能平安”,是汽车行业中应用的性能平安规范。而ASIL/ASIL级别则是确定软件开发平安要求的要害组成部分。 恪守这一规范对于汽车产品的开发来说至关重要。原始设施制造商、供应商和汽车零部件开发商们都须要恪守这一规范。 本篇文章将介绍ISO 26262、ISO 26262认证工具、ASIL(汽车平安完整性级别)以及针对软件开发团队的ISO 26262性能平安合规倡议。 什么是ISO 26262性能平安?ISO 26262是一项基于危险的平安规范,源自IEC 61508。它实用于量产车辆中的电气和/或电子系统。这包含驾驶员辅助、推动和车辆动力学控制系统。 这项性能平安规范涵盖了整个开发过程的所有性能平安方面: 需要标准设计执行集成验证验证配置为什么ISO 26262很重要?以及为什么ASIL(汽车平安完整性等级)/ASIL等级很重要? 该规范的指标是确保汽车设施和零碎的整个生命周期的安全性。 在生命周期的每个阶段,须要采取具体的步骤。这将确保安全的概念贯通始终,从晚期的概念阶段到车辆服役。 通过恪守ISO 26262规范,您可能防止或控制系统性的故障,并且能够检测或管制随机硬件故障(或者您将加重故障的影响)。 ISO 26262的十个局部 第1局部:术语第2局部:性能平安治理第3局部:概念阶段第4局部:零碎级别的产品开发第5局部:硬件级别的产品开发第6局部:软件级别的产品开发第7局部:生产与经营第8局部:反对流程第9局部:面向ASIL和安全性的剖析第10局部:平安规范指南平安规范的第二版曾打算减少一个局部——SOTIF,重点关注预期性能的安全性。然而,SOTIF随后曾经作为一个独自的规范公布——ISO/PAS 21448。 针对软件开发人员的性能平安 第6局部对于软件开发人员来说是最重要的局部。它具体介绍了开发人员必须采取的步骤,以确保每个组件的安全性。 此外,第6局部还包含了几个表格,定义了为了达到规范合规性必须思考的办法。 ISO 26262认证工具 在汽车开发中,应用的任何工具都须要通过合格性认证。第8局部提供了ISO 26262工具资格认证的领导。 认证工具须要有以下内容: 软件工具认证打算软件工具文档软件工具分类剖析软件工具认证报告某些工具比其余工具更容易取得合格性认证。例如,Helix QAC(C和C++动态代码分析器)附带了合规证书,使认证过程更容易。 什么是ASIL(汽车平安完整性等级)?汽车平安完整性等级(ASIL)是ISO 26262的要害组成部分,用于掂量特定零碎组件的危险。零碎越简单,呈现系统性故障和随机硬件故障的危险就越大。 汽车平安完整性级别(ASIL)有四个值,别离为A到D。ASIL A是最低的危险级别,ASIL D是最高的级别。从A到D,合规要求变得更加严格。 在确定汽车平安完整性级别时,还有第五个选项——QM(品质治理)。这用于示意该组件没有平安要求。(但为了进步产品质量,通常仍倡议恪守) 如何确定ASIL和ASIL级别?ASIL由三个因素决定——严重性、裸露度和可控性。 严重性 严重性掂量了系统故障造成的侵害的重大水平,包含人员和财产侵害。 有四个严重性等级: S0:没有挫伤S1:轻度至中度挫伤S2:重大至危及生命(可能生存)的挫伤S3:危及生命(生存不确定)至致命挫伤裸露度 裸露度形容了在什么条件下某个特定的故障可能会引发安全隐患。 每个条件依照产生的概率,分为了以下五个等级: E0:齐全不可能E1:概率极低(仅在极少数操作条件下才会产生挫伤)E2:低概率E3:中等概率E4:高概率(在大多数操作条件下都可能产生挫伤)可控性 可控性是在产生危险状况时能够防止挫伤的可能性。这种状况可能是因为驾驶员的操作或内部措施造成的。 危险状况的可控性分为四个等级: C0:总体可控C1:容易管制C2:个别可控(大多数司机能够采取行动避免受伤)C3:难以管制或无法控制一旦您确定了严重性、裸露度和可控性,您就能够确定汽车平安完整性等级(ASIL)。第3局部的表格4提供了对于此方面的领导。 △ 应用此图表可依据严重性、裸露度和可控性来确定ASIL ASIL级别合规指南+ISO 26262无论您是在开发传统的汽车组件(例如集成电路)还是虚构组件(例如汽车虚拟机管理程序),恪守平安规范都很重要。在整个汽车嵌入式软件开发生命周期中放弃合规性至关重要。 但对于开发团队来说,满足合规可能很艰难。零碎和代码库越来越简单,使得验证和确认软件变得艰难。 您能够通过应用软件开发工具来简化这一过程。 建设可追溯性 满足合规性要求,并证实本人满足这些要求是一个十分繁琐的过程。您须要记录这些需要,并将它们与其余制品库(包含测试、问题和源代码)进行关联。 建设需要的可追溯性可能简化验证过程——尤其是在应用Helix ALM等工具的状况下。它还能够帮忙您在开发的过程中治理危险。 而且,如果您为汽车开发半导体,应用Methodics IPLM等工具将有助于为您的设计建设验证可追溯性。此外,Methodics IPLM 能够帮忙您治理ISO 26262性能平安认证。 将您的代码存储在Helix Core中(来自Perforce的版本控制系统)中,能够平安地治理所有数字资产的订正历史。您将取得精密的访问控制、高透明度的的审核日志、弱小的明码安全性以及平安的复制。因而,您能够对本人的代码充满信心。 利用编码标准 确保代码平安、防备和牢靠可能很艰难。您须要满足特定的编码和设计准则。 ...

August 21, 2023 · 1 min · jiezi

关于iso:行业唯一Eolink-通过两项-ISO-国际权威认证

作为国内最早的 API 治理平台, Eolink 始终以技术和服务掂量产品能力和领导位置。咱们很骄傲的通知大家,近日 Eolink 顺利通过了 ISO9001 和 ISO27001 两项国内权威认证,成为行业惟一通过这两项认证的企业! 作为一家专一为企业用户提供晋升研发效力管理工具的企业, Eolink 始终保持对客户称心、产品质量、继续改良、信息安全和优质服务等方面的继续谋求,这与 ISO9001、ISO27001 等质量体系所提倡的理念是统一的。 Eolink 顺利通过两项 ISO 国内权威认证,是对 Eolink 在品质治理、信息安全治理和信息技术服务治理方面的认可,也意味着 Eolink 可能向客户提供业内更加安全可靠的产品和服务。这次认证不仅是 Eolink 的一次里程碑式的荣誉,更证实了 Eolink 在行业内的领先地位。 值得一提的是,近年来,Eolink 依靠多年来在 API 畛域的实践经验与翻新成绩,在业内屡次率先通过国内、国内各类官网的技术和平安认证:顺利通过了高新技术企业认证、信创产品认证、鲲鹏认证、麒麟软件认证、等保三级认证、可信云认证等等...... 成为我国 API 治理畛域的行业代表。 在平安和牢靠的业余产品和服务能力加持下,Eolink 已胜利为电信、腾讯、商汤、易方达、三一重工、小鹏汽车、SONY 等泛滥行业领军企业提供安全可靠的 API 研发治理和自动化测试解决方案,无效地晋升了这些企业的研发效力。 将来,Eolink 将秉承高标准的软件研发要求,持续为用户的数据安全保驾护航。

March 18, 2023 · 1 min · jiezi

理论实践解析IT治理之模式与原则

IT治理工作作为企业信息化建设的上层建筑,扮演着及其重要的角色。本文结合作者的学习及实践经验给出一些借鉴。 一、IT治理概述1.1 何为IT治理在企业信息化建设中的最大问题,往往不是技术问题,也不是资金问题,而是缺乏科学的IT管理观念。IT领导者最大的问题不是缺少经验和能力,而是缺乏卓越的管理素质和管理方法。正因为如此,才引入了"IT治理"这个概念。从定义上讲,IT治理,是指设计并实施信息化过程中,各方利益最大化的制度安排。其目的是实现组织的业务战略,促进管理创新,合理管控信息化过程的风险,建立信息化可持续发展的长效机制,最终实现IT商业价值。 1.2 IT治理目标目标1 - IT与组织战略互动通过研究组织的发展远景、内外部环境、业务策略和管理基础上,形成信息化的远景、信息系统的组成架构、信息系统各部分的逻辑关系,以支撑战略规划目标的达成。针对信息系统的支撑硬件、软件、技术等进行计划与安排。这其中的难点在于,需要理解组织的关键目标,才能制定IT战略目标,进而转化为IT治理有效行动。多变的组织战略是不利于IT战略的可持续发展。 目标2 - 有效利用信息资源信息资源的开发和利用是信息化建设的核心任务,是信息化取得实效的关键,是衡量信息化水平的一个重要标志。通过IT治理可以对信息资源的管理职责进行有效的制度设计,保证投资的回收,并支持业务战略的发展。避免出现投资过大、效果不佳;信息孤岛、无法共享;工程超期、不满足需求等问题。 目标3 - 管理信息化风险企业发展越来越依赖于信息化建设水平,因而IT风险是企业需要关注的。技术迭代越来越快,新的技术不断涌现,如何避免新技术带来的风险也是需要从管理角度加以关注的。此外,随着近些年国家对个人隐私、数据安全的关注,此类风险也是需要企业重点关注。通过制定信息资源的保护级别,强调关键的信息技术资源,有效实施监控,事故处理。 目标4 - 构建可持续发展机制企业内信息化建设,需要有个可持续发展机制。不能简单依靠领导命令方式,而转换为一个长期的发展规划。辅助以绩效评估手段,才可以构建信息化可持续发展的长效机制。 1.3 IT治理、企业治理、IT管理的关系这是三个很容易混淆的概念,只有理清三者关系,才能有效推动治理落地。 企业治理:主要关注利益相关者的权益和管理,包括一系列责任和条例,由最高管理层和执行管理层实施,目的是提供战略方向,保证目标能够实现,追求投资的最大产出比,风险适当管理并合理使用资源等。IT治理:主要关注企业的IT投资是否与战略目标相一致,从而构筑必要的核心竞争力。IT治理要能体现未来信息技术与未来企业组织的战略集成。既要尽可能地保持开放性和长远性,以确保系统的稳定性和延续性。IT管理:是在既定的IT治理模式下,管理层为实现公司的目标而采取的行动。 企业治理侧重企业整体规划,IT治理侧重与企业中信息资源的有效利用和管理,提升企业信息化的核心价值。IT治理应该体现"以组织战略目标为中心"的思想,通过合理配置IT资源来创造价值。IT管理关注的是企业信息及信息系统的运营,确定IT目标以及实现此目标所采取的行动;而IT治理是指最高管理层利用它来监督管理层在IT战略上的过程、结构和联系,以确保这种运营处于正确的轨道之上。两者互不可缺,单纯只有IT治理,目标无法落地;单纯有IT管理,则缺乏方向性。1.4 IT治理理论COBIT,信息系统和技术控制目标美国信息系统审计与控制协会-ISACA,于1996年推出了用于"IT审计"的知识体系COBIT。"IT审计"已经成为众多国家的政府部门、企业对IT的计划与组织、采购与实施、服务提供与服务支持、监督与控制等进行全面考核与认可的业界标准。作为IT治理的核心模型,COBIT包括34个信息技术过程控制,并归集为四个控制域:IT规划和组织、系统获得和实施、交付与支持以及信息系统运行性能监控。 ITIL,信息技术基础架构库一套被广泛承认的用于有效IT服务管理的时间准则。1980年以来,英国提出和完善了一整套对IT服务的质量进行评估的方法体系,成为ITIL。2001年,英国标准协会在国际IT服务管理论坛上正式发布了以ITIL为核心的英国国家标准BS15000。ITIL是一套详细描述最佳IT服务管理的丛书。它是一种公共框架、最佳实践框架、服务质量是ITIL的核心。但ITIL只说明了要做什么,没有说明如何去做,企业应根据需求去参照ITIL框架进行IT服务管理的建设,而不应追求大而全;并且ITIL不是一个理论模型,而是一个最佳实践库。 ISO/IEC17799,国际信息安全管理标准体系2000年12月,国际标准化组织ISO正式发布了有关信息安全的国际标准ISO17799,这个标准包含信息系统安全管理和安全认证两大部分,是参照英国国家标准而来的。它是一个详细的安全标准,包括安全内容的所有准则,由十个独立的部分组成,每一节都覆盖了不同的主题和区域。它以"计划、实施、检查、行动"模式,将管理体系规范导入机构或企业内,以达到"持续改进"目的。 PRINCE2是一种对项目管理的某些特定方面提供支持的方法。PRINCE2描述了一个项目如何被切分成一些可供管理的阶段,以便高效地控制资源的使用和在整个项目周期执行常规的监督流程。PRINCE2的视野并不仅仅限于对某个项目的管理,还覆盖了在组织范围对对项目的管理。 二、IT治理实践2.1 前提条件明确目标IT治理活动与企业治理过程相结合,并有企业领导的参与。IT治理专注于企业目标和战略,使用技术提高业务水平,并满足业务需求的足够可用的资源和能力。 组织架构成功的IT治理首先需要有一个明晰的IT治理组织架构,并且组织机构中的各个部门(包括人员)都有明确的角色和相关职责的定义。 治理流程IT治理流程是保证企业的相关部门采用合理的步骤进行IT治理活动。制订相关流程和规范并有效实施。它应是根据企业需求出发并落实责任到人。 管理制度IT制度是将日常的流程进行固化并形成对企业的规范,需要每个员工都加以遵循的一种措施。同时提供必要的手段,进行监督管理,最终形成一种控制的环境或文化。 2.2 治理模式目前主流的IT治理的组织模式有:专制管理模式、联邦型管理模式、分散管理模式三种。 专制管理模式由IT部门或某强势业务部门管理项目投资、建设和维护。IT治理决策完全由该部门负责。其主要优势是成本导向型架构,能较好管理IT资产和系统,长期来看能够节约IT成本。其主要问题是决策过程中业务部门不参与,因此响应速度较慢,缺乏创新。适用于追求短期利润的公司,所需的IT行为在追求低的业务成本上高度标准化。分散管理模式由各业务部门独立负责项目投资、建设和运营,IT治理的策略由部门自行决定。其优势是业务部门开发能力,IT人员能理解业务流程并参与系统建设,对业务部门的需求响应更为及时,创新能力增强。其主要问题是业务部门战略和整个企业战略可能出现不一致的情况,IT资产不能共享,长期来看会导致成本上升。适用于新成立的公司或研发类的公司。他们是以收入增长作为成功的度量标准,所需要的治理机制也很少。联邦型管理模式由IT部门与业务部门联合进行IT管理,各自负有明确的职责。IT治理决策由多部门在衡量各种影响因素之后做出。其主要优势是IT部门和业务部门共同进行IT决策,在一定程度上可以克服前两种模式的缺点。其主要问题是对资源的管理和协调难度增加,需要很强的协调能力,而且不能完全保证成功。适用于致力于利润的持续增长与业务创新的公司。他们的IT准则是强调流程、系统、技术和数据模型等方面的共享和重用。他们引入联邦型治理机制,以处理全公司范围内的控制和局部控制之间的矛盾。2.3 流程管理原则IT治理流程的设计是为了能够在跨业务部门的流程中顺利完成IT业务的操作,是完整的、可见的,并且是可管理的。应遵循如下设计原则: 流程设计的目的是要创造价值的,所以必须剔除所有的无价值的环节。高价值的流程是流程设计的重点,这样才能集中企业有限的管理资源产生最大的回报。流程是持续的,需要不断创新的,而不是重复的整理历史。只有明确的责任人,才能保障流程每个环节的顺畅流转。2.4 管理制度原则制度的制定要职责清晰、流程明确,在事前可以使员工对工作心中有数,事中可以使工作流程顺畅,事后有问题可以追求责任。应首先考虑在影响面大或涉及部门、员工多的工作中建立工作制度,逐步增加和完善,形成覆盖信息化工作的各个方面、各个阶段、各个环节的制度体系。成熟规范的工作流程可以逐步转化为制度加以固化,成熟的制度可进一步上升为IT管理标准。作者:韩锋 首发于公众号《韩锋频道》,欢迎关注。 来源:宜信技术学院

July 4, 2019 · 1 min · jiezi

iOS- JSBridge的原理

作者:心叶时间:2019-03-25 10:18原理概述简介JSBridge是Native代码与JS代码的通信桥梁。目前的一种统一方案是:H5触发url scheme->Native捕获url scheme->原生分析,执行->原生调用h5。如下图:url scheme介绍上图中有提到url scheme这个概念,那这到底是什么呢?url scheme是一种类似于url的链接,是为了方便app直接互相调用设计的具体为,可以用系统的OpenURI打开一个类似于url的链接(可拼入参数),然后系统会进行判断,如果是系统的url scheme,则打开系统应用,否则找看是否有app注册这种scheme,打开对应app需要注意的是,这种scheme必须原生app注册后才会生效,如微信的scheme为(weixin://)而本文JSBridge中的url scheme则是仿照上述的形式的一种方式具体为,app不会注册对应的scheme,而是由前端页面通过某种方式触发scheme(如用iframe.src),然后Native用某种方法捕获对应的url触发事件,然后拿到当前的触发url,根据定义好的协议,分析当前触发了那种方法,然后根据定义来执行等注意,iOS10以后,urlscheme必须符合url规范,否则会报错实现流程基于上述的基本原理,现在开始设计一种JSBridge的实现实现思路要实现JSBridge,我们可以进行关键步骤分析第一步:设计出一个Native与JS交互的全局桥对象第二步:JS如何调用Native第三步:Native如何得知api被调用第四步:分析url-参数和回调的格式第五步:Native如何调用JS第六步:H5中api方法的注册以及格式如下图:第一步:设计出一个Native与JS交互的全局桥对象我们规定,JS和Native之间的通信必须通过一个H5全局对象JSbridge来实现,该对象有如下特点该对象名为"JSBridge",是H5页面中全局对象window的一个属性var JSBridge = window.JSBridge || (window.JSBridge = {});该对象有如下方法- registerHandler(String,Function) H5调用,注册本地JS方法,注册后Native可通过JSBridge调用。调用后会将方法注册到本地变量messageHandlers 中- callHandler(String,JSON,Function) H5调用,调用原生开放的api,调用后实际上还是本地通过url scheme触发。调用时会将回调id存放到本地变量responseCallbacks中- _handleMessageFromNative(JSON) Native调用,原生调用H5页面注册的方法,或者通知H5页面执行回调方法如图第二步:JS如何调用Native在第一步中,我们定义好了全局桥对象,可以我们是通过它的callHandler方法来调用原生的,那么它内部经历了一个怎么样的过程呢?如下:callHandler函数内部实现过程在执行callHandler时,内部经历了以下步骤:(1)判断是否有回调函数,如果有,生成一个回调函数id,并将id和对应回调添加进入回调函数集合responseCallbacks中(2)通过特定的参数转换方法,将传入的数据,方法名一起,拼接成一个url scheme//url scheme的格式如//基本有用信息就是后面的callbackId,handlerName与data//原生捕获到这个scheme后会进行分析var uri = CUSTOM_PROTOCOL_SCHEME://API_Name:callbackId/handlerName?data(3)使用内部早就创建好的一个隐藏iframe来触发scheme//创建隐藏iframe过程var messagingIframe = document.createElement(‘iframe’);messagingIframe.style.display = ’none’;document.documentElement.appendChild(messagingIframe);//触发schememessagingIframe.src = uri;注意点:注意,正常来说是可以通过window.location.href达到发起网络请求的效果的,但是有一个很严重的问题,就是如果我们连续多次修改window.location.href的值,在Native层只能接收到最后一次请求,前面的请求都会被忽略掉。所以JS端发起网络请求的时候,需要使用iframe,这样就可以避免这个问题。第三步:Native如何得知api被调用在上一步中,我们已经成功在H5页面中触发scheme,那么Native如何捕获scheme被触发呢?根据系统不同,Android和iOS分别有自己的处理方式Android捕获url scheme在Android中(WebViewClient里),通过shouldoverrideurlloading可以捕获到url scheme的触发public boolean shouldOverrideUrlLoading(WebView view, String url){ //读取到url后自行进行分析处理 //如果返回false,则WebView处理链接url,如果返回true,代表WebView根据程序来执行url return true;}另外,Android中也可以不通过iframe.src来触发scheme,android中可以通过window.prompt(uri, “”);来触发scheme,然后Native中通过重写WebViewClient的onJsPrompt来获取uriiOS捕获url schemeiOS中,UIWebView有个特性:在UIWebView内发起的所有网络请求,都可以通过delegate函数在Native层得到通知。这样,我们可以在webview中捕获url scheme的触发(原理是利用 shouldStartLoadWithRequest)- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; NSString *requestString = [[request URL] absoluteString]; //获取利润url scheme后自行进行处理 return YES;}之后Native捕获到了JS调用的url scheme,接下来就该到下一步分析url了第四步:分析url-参数和回调的格式在前面的步骤中,Native已经接收到了JS调用的方法,那么接下来,原生就应该按照定义好的数据格式来解析数据了url scheme的格式,前面已经提到。Native接收到Url后,可以按照这种格式将回调参数id、api名、参数提取出来,然后按如下步骤进行(1)根据api名,在本地找寻对应的api方法,并且记录该方法执行完后的回调函数id(2)根据提取出来的参数,根据定义好的参数进行转化如果是JSON格式需要手动转换,如果是String格式直接可以使用(3)原生本地执行对应的api功能方法(4)功能执行完毕后,找到这次api调用对应的回调函数id,然后连同需要传递的参数信息,组装成一个JSON格式的参数回调的JSON格式为:{responseId:回调id,responseData:回调数据}responseId String型 H5页面中对应需要执行的回调函数的id,在H5中生成url scheme时就已经产生responseData JSON型 Native需要传递给H5的回调数据,是一个JSON格式: {code:(整型,调用是否成功,1成功,0失败),result:具体需要传递的结果信息,可以为任意类型,msg:一些其它信息,如调用错误时的错误信息}(5)通过JSBridge通知H5页面回调参考 第五步Native如何调用JS第五步:Native如何调用JS到了这一步,就该Native通过JSBridge调用H5的JS方法或者通知H5进行回调了,具体如下//将回调信息传给H5JSBridge._handleMessageFromNative(messageJSON);如上,实际上是通过JSBridge的_handleMessageFromNative传递数据给H5,其中的messageJSON数据格式根据两种不同的类型,有所区别,如下Native通知H5页面进行回调数据格式为:上文中的回调的JSON格式Native主动调用H5方法Native主动调用H5方法时,数据格式是:{handlerName:api名,data:数据,callbackId:回调id}handlerName String型 需要调用的,h5中开放的api的名称data JSON型 需要传递的数据,固定为JSON格式(因为我们固定H5中注册的方法接收的第一个参数必须是JSON,第二个是回调函数)注意,这一步中,如果Native调用的api是h5没有注册的,h5页面上会有对应的错误提示。另外,H5调用Native时,Native处理完毕后一定要及时通知H5进行回调,要不然这个回调函数不会自动销毁,多了后会引发内存泄漏。第六步:H5中api方法的注册以及格式前面有提到Native主动调用H5中注册的api方法,那么h5中怎么注册供原生调用的api方法呢?格式又是什么呢?如下H5中注册供原生调用的API//注册一个测试函数JSBridge.registerHandler(’testH5Func’,function(data,callback){ alert(‘测试函数接收到数据:’+JSON.stringify(data)); callback&&callback(‘测试回传数据…’);});如上述代码为注册一个供原生调用的apiH5中注册的API格式注意如上代码,注册的api参数是(data,callback)其中第一个data即原生传过来的数据,第二个callback是内部封装过一次的,执行callback后会触发url scheme,通知原生获取回调信息思路大致思路就是h5调用Native的关键步骤进行拆分,由以前的直接传递url scheme变为传递一个统一的url scheme,然后Native主动获取传递的参数完善以前: H5调用Native->将所有参数组装成为url scheme->原生捕获scheme,进行分析完善以后: H5调用Native->将所有参数存入本地数组->触发一个固定的url scheme->原生捕获scheme->原生通过JSBridge主动获取参数->进行分析实现这种完善后的流程和以前有所区别,如下JSBridge对象图解JSBridge实现完整流程注意由于这次完善的核心是:Native主动调用JS函数,并获取返回值。而在Android4.4以前,Android是没有这个功能的,所以并不完全适用于Android所以一般会进行一个兼容处理,Android中采用以前的scheme传法,iOS使用完善后的方案(也便于4.4普及后后续的完善)完整的JSBridge上述分析了JSBridge的实现流程,那么实际项目中,我们就应该结合上述两种,针对Android和iOS的不同情况,统一出一种完整的方案,如下完整调用流程图例子基于上面的思想,个人在github上维护了一个用于学习的项目(非装载内容):https://github.com/yelloxing/…不采用url scheme方式前面提到的JSBridge都是基于url scheme的,但其实如果不考虑Android4.2以下,iOS7以下,其实也可以用另一套方案的,如下:Native调用JS的方法不变JS调用Native是不再通过触发url scheme,而是采用自带的交互,比如Android中,原生通过 addJavascriptInterface开放一个统一的api给JS调用,然后将触发url scheme步骤变为调用这个api,其余步骤不变(相当于以前是url接收参数,现在变为api函数接收参数)iOS中,原生通过JavaScriptCore里面的方法来注册一个统一api,其余和Android中一样(这里就不需要主动获取参数了,因为参数可以直接由这个函数统一接收) ...

March 25, 2019 · 1 min · jiezi