HarmonyOS 鸿蒙Next 历时10天成功上架的第一个元服务---身份证号码查验V1.0.0版
HarmonyOS 鸿蒙Next 历时10天成功上架的第一个元服务—身份证号码查验V1.0.0版
自从鸿蒙系统发布后,一直在断断续续学习HarmonyOS相关的APP开发,直到今天的HarmonyOS NEXT,但是一直未上架应用。一开始看到鸿蒙原生应用开发者激励计划,都觉得离上架还有很长的距离…毕竟备案、软著等等各种程序很繁琐。直到某天看到元服务无需备案、无需软著就可以上架,才尝试自己的第一次上架尝试…
先上效果图吧:
一、项目简介
身份证号码查验元服务界面只有一个主界面,上架大小0.21M,功能是根据用户输入的身份证号码,解析出生日期、性别及首次签发地的相关信息(身份证编码规则大家可以自行搜索),如果年、月、日输入不符合要求,会以红色字体提示。本元服务是单机应用,查询的信息集成在元服务中。因行政区划历经多次变动,后续数据库会逐步完善,当前的行政区划数据是官网上的2023年的数据。
二、项目结构
三、项目核心功能
1.定义数据模型
export interface ICity {
city:string //城市名称
citycode:string //城市代码
county:Array<ICounty> //城市管辖的县区数组
}
export interface IProvince {
province:string //省份名称
provincecode:string //省份代码
city:Array<ICity> //省份管辖的城市数组
}
export const AdministrativeDivision:Array<IProvince> = [
{
province:‘北京市’,
provincecode:‘11’,
city:[
{
city:‘北京市’,
citycode:‘01’,
county:[
{ county:‘东城区’, countycode:‘01’ },
{ county:‘西城区’, countycode:‘02’ },
{ county:‘朝阳区’, countycode:‘05’ }
]
}
]
},
{
province:‘河北省’,
provincecode:‘13’,
city:[
{
city:‘石家庄市’,
citycode:‘01’,
county:[
{ county:‘长安区’, countycode:‘02’ },
{ county:‘桥西区’, countycode:‘04’ }
…
{
city:‘衡水市’,
citycode:‘11’,
county:[
{ county:‘桃城区’, countycode:‘02’ },
{ county:‘冀州区’, countycode:‘03’ }
…
]
}
]
}
]
2.相关判断函数
//判断是否符合身份证编码规范,是返回true,否则返回正确的校验码
isRight(checkNum:string):boolean|string{
let sum:number=0
let temp:string=checkNum.slice(0,17) //获取传来的身份证号码的前17位
//console.log(‘temp=’,temp)
//根据身份证号码编码规则,计算和值
for (let i=0;i<temp.length;i++){
sum+=parseInt(temp[i])*this.mulNum[i]
}
console.log(‘sum=’,sum)
//通过对11求余数
let modSum:number=sum%11
console.log(‘modSum=’,modSum)
//获取身份证号码最后一位字符
let lString:string=checkNum.slice(17,18)
console.log(‘lString=’,lString)
console.log(‘tt[17]=’,this.lastNum[modSum])
if (lString.localeCompare(this.lastNum[modSum])===0){
console.log(‘合法身份证号码。’)
return true
}
else{
console.log(‘非法身份证号码,正确的最后一位号码为:’,this.lastNum[modSum])
return this.lastNum[modSum]
}
}
//获取身份证号码里面的年并判断
getYear(checkNum:string):string{
return checkNum.slice(6,10)
}
//获取身份证号码里面的月
getMonth(checkNum:string):string{
return checkNum.slice(10,12)
}
//获取身份证号码里面的日
getDay(checkNum:string):string{
return checkNum.slice(12,14)
}
//判断性别 ,偶数女,奇数男
getSex(checkNum:string):string{
let temp:string=checkNum.slice(16,17)
console.log(‘MyTag temp:’,temp)
if (parseInt(temp)%2==0){
return ‘女’
}else{
return ‘男’
}
}
四、设计元服务图标
选择Image Asset后,跳出如下界面:
方形资源图上传要求
开发者在元服务图标生成工具中上传的方形图资源需满足以下要求:
- 图片格式:.png、.jpeg、.jpg格式的静态图片资源
- 图片尺寸:1024 x 1024 px (正方形)
- 图片背景:不透明
- 质量要求:图标内容需清晰可辨,避免存在模糊、锯齿、拉伸等问题
五、签名编译成发布APP
点击项目结构,选择Signing Configs,取消自动签名(具体的如何签名可以看官网的详细介绍)
签名好后,开始编译如下:
在下图位置得到可以上架发布的APP
五、总结
该项目较简单,不涉及到很复杂的组件,从12月7日第一次提交,中途因隐私协议里元服务名称跟上架元服务名称不一致退回修改了一次,到今天成功上架,总体比较顺利,也得益于论坛里其他大佬的经验分享,让我少走很多弯路,不一一感谢了。欢迎大家搜索体验,多提宝贵的意见,共同交流开发心得。
更多关于HarmonyOS 鸿蒙Next 历时10天成功上架的第一个元服务---身份证号码查验V1.0.0版的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
状态:待修改
审核意见:
应用审核意见:
您的元服务欠缺创意性和独特价值,未能为用户提供差异化的体验,不符合华为应用市场《元服务审核指南》第3.4项。
修改建议:请您提交具有独特内容和功能的元服务。
《元服务审核指南》请参考:https://developer.huawei.com/consumer/cn/doc/app/50129-03
测试环境:Wi-Fi联网、Mate60、中文环境。
审核意见不能一次性反馈吗?每次反馈的都不一样....
更多关于HarmonyOS 鸿蒙Next 历时10天成功上架的第一个元服务---身份证号码查验V1.0.0版的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next平台上,您成功在10天内上架的身份证号码查验V1.0.0版元服务,标志着您在鸿蒙生态中的一次重要突破。针对该服务,以下是一些核心要点概述:
该元服务利用鸿蒙系统的分布式能力,实现了跨设备的数据验证与身份核验。通过集成先进的算法与数据库比对技术,它能够高效、准确地查验身份证号码的有效性及真实性,为用户提供便捷的身份验证服务。
在开发过程中,您可能充分利用了鸿蒙提供的原生开发框架与工具链,确保了服务的稳定性与安全性。同时,鸿蒙系统的分布式数据管理、设备协同等特性,也为该服务的跨场景应用提供了有力支持。
值得注意的是,随着鸿蒙生态的不断扩展,您的身份证号码查验服务有望在未来实现更广泛的场景覆盖与设备接入,为用户提供更加丰富、便捷的身份验证体验。
如果您在后续使用过程中遇到任何问题,如功能异常、性能瓶颈等,建议您直接参考鸿蒙官方文档或联系官网客服进行排查。官网客服团队将为您提供专业的技术支持与解决方案。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html