鸿蒙3.0应用开发若干问题及上架总结
创始人
2024-03-27 08:22:15
0

在这里插入图片描述

1.如何去掉默认标题栏,实现全屏显示?

在config.json中的ability配置信息中添加属性:

"abilities": [
{..."metaData": {"customizeData": [{"name": "hwc-theme","value": "androidhwext:style/Theme.Emui.Translucent.NoTitleBar","extra": ""}]}...
}]

2.应用冷启动白屏?

这个问题类似与安卓应用冷启动时白屏一样,鸿蒙应用的解决办法同问题1,将主题设置为:

androidhwext:style/Theme.Emui.Translucent.NoTitleBar

注意是Translucent。

3.如何获取屏幕尺寸?

import display from '@ohos.display';display.getDefaultDisplay((err, data) => {if (err) return;console.error("屏幕宽高:" + data.width + "," + data.height);
});

4.如何获取状态栏高度,以及设置状态栏背景色?

import window from '@ohos.window';window.getTopWindow((err, mainWindowClass) => {if (err) return;mainWindowClass.setSystemBarEnable(['status']);mainWindowClass.setLayoutFullScreen(true);mainWindowClass.setSystemBarProperties({statusBarColor: '#00ff0000', // 状态栏背景色透明isStatusBarLightIcon: false,//状态栏图标是否为亮色statusBarContentColor: '#000000',//状态栏字体颜色});mainWindowClass.getAvoidArea(window.AvoidAreaType.TYPE_SYSTEM, (err, data) => {if (err) return;console.error("状态栏高度:" + data.topRect.height);});
});

5.如何显示Toast提示?

import prompt from '@ohos.prompt';prompt.showToast({message: "提示信息",bottom: "1000px"//距离屏幕底部高度
})

效果:
在这里插入图片描述

6.网络请求

http:

import http from '@ohos.net.http';let httpRequest = http.createHttp()
httpRequest.request(url, {method: method,header: header,extraData: paramsStr,connectTimeout: 30000, // 可选,默认为60sreadTimeout: 30000, // 可选,默认为60s}, (err, data) => {})

fetch:

import fetch from '@system.fetch';fetch.fetch({url: url,method: method,header: header,success: res => {},fail: error => {}
})

7.自定义LoadingDialog

@CustomDialog
export struct LoadingDialog {controller: CustomDialogController@State angle: number = 0interval: numberaboutToAppear() {this.angleChange()}aboutToDisappear() {clearInterval(this.interval)}angleChange() {this.angle = 0this.interval = setInterval(() => {this.angle += -30if (this.angle == -360) this.angle = 0}, 50)}build() {Stack() {Column() {Image($r('app.media.ic_loading')).width(20).height(20).rotate({ x: 0, y: 0, z: 1, angle: this.angle })}}.width(50).height(50).backgroundColor(0x88000000).borderRadius(10).shadow({ radius: 10, color: Color.Gray, offsetX: 3, offsetY: 3 })}
}

使用方法,在page内:

声明CustomDialogController :

  dialogController: CustomDialogController = new CustomDialogController({builder: LoadingDialog(),autoCancel: false,customStyle: true});显示:this.dialogController.open()
隐藏:this.dialogController.close()

槽点:目前dialog只能在@Entry修饰的page内使用,无法进行封装,也就是说,在想使用loading的页面,都要进行以上声明并调用相关方法才能使用!

效果:

在这里插入图片描述
8.如何进行真机调试?

首先,你的真机系统版本要跟你的项目api版本要一致,或者真机系统版本高于项目api版本,例如项目api是8,真机就必须为鸿蒙3.0以上系统,2.0无法安装调试;

9.如何设置正式签名及发布应用?

File->Project Structure:

在这里插入图片描述

勾选Automatically generate signature,则自动生成debug版本的签名,调试时可以直接运行到真机或模拟器。

当你发布应用时则需要正式签名,此时就需要手动设置签名,手动签名需要三个文件:

  • .p12:自己创建;
  • .cer:通过自己创建的.csr从华为后台申请得到;
  • .p7b:通过上一步得到的.cer通过华为后台申请得到;

第一步:创建.p12和.csr:

Build->Generate Key and CSR:

在这里插入图片描述

首先需要创建p12证书,填写证书名称,密码等;

创建成功后进入到生成CSR这一步,填写别名,密码以及csr的文件名和保存位置:

在这里插入图片描述

点击Finish后生成:

在这里插入图片描述

第二步:上传第一步获取的.csr申请.cer

选择用户与访问:
在这里插入图片描述
选择右侧菜单证书管理:

在这里插入图片描述

点击右侧,新增证书按钮:

在这里插入图片描述
证书名称自定义,证书类型选择发布证书,csr即第一步生成的csr文件,提交后会在后台生成一个正式的发布证书,下载下来并保存:

在这里插入图片描述

第三步:上传第二步获取的.cer,申请.p7b:

选择我的项目,并选择你的鸿蒙版应用,然后在右侧菜单选择 HAP Provision Profile管理:
在这里插入图片描述

在右侧点击添加按钮:

在这里插入图片描述

名称自定义,类型选择发布,证书选择时会自动弹出第二步创建的.cer,选择即可,首先权限根据项目情况选择,提交成功后:

在这里插入图片描述
下载.p7b证书并保存!

回开发工具中设置签名的界面:

在这里插入图片描述

依次选择你所生成和下载的.p12,.cer和.p7b并确定!然后开发工具选择Build->BuildAPP(s)即可,注意上传市场只能是.app格式的包:
BIild
编译完成后,app包在项目根目录的build文件夹下:

在这里插入图片描述

10.上传市场时可能遇到的审核问题

  • 应用图标问题:最好为纯色背景+logo,右下角明显HMOS标识,尺寸216直角
  • 项目存在bug,影响下一步操作
  • 功能不完善
  • 无隐私条款
  • 如有个性化推荐功能,则必须要提供关闭功能
  • 最好加上账号注销功能

如果你的鸿蒙版应用已有安卓版在华为市场上架,审核会轻松不少

11.目前上传到市场的鸿蒙应用内允许的操作

比如内部一些功能无法通过鸿蒙版app实现时,可以提示用户,跳转到安卓版对应页面操作,如用户没有安装,则跳转到安卓版应用市场详情页(以上需要自己实现)

12.arkui中的直播支持问题

arkui的video组件目前只支持本地视频和网络视频,不支持如直播推拉流,官方回复目前暂无支持计划,也没有解决方案,无解,只能等待ark技术栈逐步完善!

待续…

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...