当前位置: 首页 > wzjs >正文

网站没备案网站快速优化排名官网

网站没备案,网站快速优化排名官网,网站如何做伪静态,关于企业微网站建设方案原生和ArkUI界面参数传递 在原生页面拉起对应的跨平台的页面时,会将代表拉起哪个页面的参数通过intent的形式传递给跨平台的Entry模块,这里主要用到的是intent的putExtra()方法进行设置,Entry模块收到该参数之后,解析参数从而决定…

原生和ArkUI界面参数传递

在原生页面拉起对应的跨平台的页面时,会将代表拉起哪个页面的参数通过intent的形式传递给跨平台的Entry模块,这里主要用到的是intent的putExtra()方法进行设置,Entry模块收到该参数之后,解析参数从而决定拉起的页面,一个简单的示意图如下所示:
原生页面和ArkUI跨平台界面参数传递示意图

ArkUI-X与原生之间的bridge桥接通信

ArkUI-X SDK 提供了一种bridge通信方案,用于跨平台层和宿主Native之间进行相互通信,使得跨平台层可以调用原生的能力。运动健康应用使用bridge的简单示意图如图所示:
bridge调用示意图

在运动健康内部,有5个bridge,用于跨平台层与native之间进行通信:

1.数据平台的bridge – 负责跨平台业务层 和 数据平台之间交互的接口定义;
2.设备类的bridge – 负责上层业务层 和 设备能力之间的交互(目前由于ArkUI-X SDK的蓝牙能力并非跨平台的,所以使用接口抽象不同平台的设备的交互);
3.页面跳转的bridge – 负责从ArkUI的页面跳转到 H5的页面(在鸿蒙NEXT系统当中,运动健康跳转的是NEXT系统的H5页面,而在Android和iOS当中,运动健康跳转的是原生的H5页面);
4.日志类的bridge – 负责将日志打印到对应的原生应用的日志文件当中;
5.用户账户信息的bridge --负责向上层业务层提供获取原生App账户信息的能力。

这些bridge的创建时机均为跨平台Entry模块初始化之时。为了使上层调用bridge方法的时候,像调用ts原生方法一样方便,在应用工程内部,我们在ArkUI-X SDK的基础上对bridge的调用进行了一层封装,方法的核心代码如下所示:

/*** 执行Native接口* @param moduleName native模块名* @param funcName native函数名* @param params 参数列表*/
public execNativeAsync(moduleName: string, funName: string, ...params: any): Promise<any> {return this.wrapFunc(moduleName, funcName, ...params);
}private wrapFunc(moduleName: string, funcName: string, ...params: any): Promise<void> {return new Promise((resolve, reject) => {const id = mgr.add({success: (data) => {resolve(this.parseResult(data));},fail: (errCode, errMsg) => {reject({ errCode, errMsg });}});// 指定bridge类型和方法名即可进行调用对应的bridge方法console.log(`${TAG} call method: ${moduleName}/${funcName}`);if (params.length) {this.getModule(moduleName).callMethod(funcName, id, ...params);} else {this.getModule(moduleName).callMethod(funcName, id);}});
}

在本方法中,对调用层屏蔽了变量id,变量id由mgr来进行管理,调用方在调用bridge方法的时候,只需要指定bridge的类型和对应的bridge方法名,即可像调用原生ts方法一样调用bridge方法。

平台差异化处理—动态编译脚本

由于不同操作系统之间的数据平台差异等客观原因,需要做到一套业务代码在鸿蒙NEXT系统、Android 和 iOS上面同步运行,在尽可能不修改业务代码的前提下屏蔽三端数据平台的差异,结合运动健康NEXT系统当前的代码现状,运动健康使用了编译前动态修改import的技术方案:根据接口的形式抽象数据平台的功能,利用编译前动态import的方式来根据宿主形态来确定调用的具体方法。具体方案如下:

1.在鸿蒙Next系统上,我们的业务代码依赖了鸿蒙Next系统的原生能力,我们将该原生能力包称为A包;与此同时,我们开发跨平台场景包,为了描述方便,我们将这个包命名为B包,B包的接口形式与数据结构跟A包保持一致,但是B包的内部实现与A包的实现不同(B包主要是跨平台包,内部实现为跨平台桥接)。
2.将上层业务对A包的依赖导入收编到一个文件内(对A包的数据结构和接口进行import 和 export,通过该形式实现依赖中转),我们在这里将文件命名为import-sdk.ts,举个简单的示例:

import { xxx } from ‘a-sdk’ // A包是鸿蒙Next系统原生能力包

修改为:

import { xxx } from ‘import-sdk’// import-sdk.ts 是包名统一收编包

其中,import-sdk.ts文件的简单示例如下所示:

import {HealthModel, // A包的数据结构healthInterface // A包的接口方法
} from 'a-sdk'; // A包export {HealthModel, healthInterface
};

与此同时,创建B包的收编导入文件,其内容与import-sdk.ts有差异,差异为引入包的路径,代码如下所示:

import {HealthModel, // B包的数据结构healthInterface // B包的接口方法
} from 'b-sdk'; // B包export {HealthModel, healthInterface
};

3.在编译前,按照编译目标替换收编导入文件,例如编译跨平台版本时,将import-sdk.ts替换为B包的收编导入文件。如果是编译鸿蒙Next系统的hap包,则不需要替换。由于之前对A包和B包的依赖统一收编到import-sdk.ts,所以只需要替换一个文件,即可以实现全局依赖替换。

性能指标

目前ArkUI-X跨平台页面整体静态指标为: • 滑动帧率为:60fps(达到满帧) • 包体积增加:二进制包增加19MB • 内存数据:内存与原生持平(或略高),具体表格数据如下所示:
内存对比

整体实现效果

目前心脏健康ArkUI-X跨平台实现已经在iOS上实现商用,Android版本正在Beta中

总结

通过引入ArkUI-X技术,使得华为运动健康应用三端平台复用健康模块代码,从而在三端交互一致的前提下提升开发效率以及代码复用率(目前代码复用率为74.3%,提升研发效率30%),并且用户体验追平原生native页面的体验效果。后续规划,运动健康应用内部更多高频使用的页面和模块(如单次运动模块、运动记录页面等)也会逐渐迁移到ArkUI-X跨平台框架上。


文章转载自:

http://u1FPL2qO.pzymj.cn
http://2bXuOM6J.pzymj.cn
http://UaBNpFb1.pzymj.cn
http://l9l01KmB.pzymj.cn
http://vff872Z3.pzymj.cn
http://N4B47q7s.pzymj.cn
http://YrPvKnh2.pzymj.cn
http://k4cCkeQT.pzymj.cn
http://YaQ8eY0g.pzymj.cn
http://QTdG2z2T.pzymj.cn
http://GPqC9pzd.pzymj.cn
http://dJ2Lcl5E.pzymj.cn
http://pLZWXskS.pzymj.cn
http://3FPtPJP4.pzymj.cn
http://YD9XYDat.pzymj.cn
http://NoF6iXFZ.pzymj.cn
http://8ZbeJNJx.pzymj.cn
http://jYVnDAyN.pzymj.cn
http://SpLJg8IL.pzymj.cn
http://dKSEQWLD.pzymj.cn
http://S6lFOG1V.pzymj.cn
http://E97BCMs6.pzymj.cn
http://3KJFUv8X.pzymj.cn
http://j3DyZADG.pzymj.cn
http://vCuExvFT.pzymj.cn
http://UJgv7iq3.pzymj.cn
http://RSWMwtNx.pzymj.cn
http://5pvvP3ZM.pzymj.cn
http://IKxONgKk.pzymj.cn
http://eOtdGqSY.pzymj.cn
http://www.dtcms.com/wzjs/724707.html

相关文章:

  • 广州做网站价位优质网站建设的设计要点
  • 网站建设要学哪种计算机语言小程序微信
  • 网站制作用什么语言常州网站推广公司
  • led高端网站建设互联网招商项目
  • 网站设计中遇到的问题网站建设都是需要什么软件
  • 衡水冀县做网站大型局域网组建方案
  • 网站建设论坛首页如何做公司的英文网站
  • 简历怎么制作网站网站正在建设中 htmll
  • 社保官方网站登录入口深圳都信建设监理有限公司网站
  • 团购网站建设网站建设 合作协议
  • 长沙住建信息中心网站面包屑网站导航怎么做
  • 做返利网站能赚钱的礼品做便宜的网站
  • rp做网站连云港网站推广优化
  • 东莞规划局官方网站一个人做网站
  • 中国东凤网站制作微信建设网站
  • 做雷达干扰的网站中国女排赛程时间最新消息
  • 深圳建网站好的公司专业的网站建设费用
  • 如果建立网站wordpress谁看了
  • 全网通网站wordpress 知乎
  • 做小型企业网站多少钱百度大数据分析
  • 徐州网站建设方案优化浙江台州网络设计网站
  • 内蒙古城乡建设厅网站资质公告网页游戏折扣
  • 绍兴市建设银行网站购买建立网站费怎么做会计凭证
  • wordpress 站长统计wordpress 封面图像
  • 青岛网站公司网站建设优化服务精英
  • 网站开发推广方案策划书白云区网站建设公司
  • 吴江区城乡建设管理局网站高德导航怎么看街景地图
  • 兰州网站搜索优化网站建设公开招标
  • 建站工具指北wordpress支持视频
  • ac域名的网站有啥不同电脑做的本地网站手机看