官方描述:服务卡片(以下简称“卡片”)是FA的一种界面展示形式,将FA的重要信息或操作前置到卡片,以达到服务直达,减少体验层级的目的。
开发文档:harmonyos应用开发-卡片开发
左下角或右下角往上滑呼出。
BASE64.jar
在项目中使用WebView
加载一个url默认尺寸2*2
,可扩展多个卡片和尺寸。
折叠屏适配:
华为新出的Mate V折叠屏手机需要将卡片显示在折叠之后的外屏上,需要在卡片form上配置customizeData
:
"metaData": {
"customizeData": [
{
"name": "exteCoverFACard",
"value": "com.xxx.xx"
}
]
}
如果内屏和外屏显示的UI是不一样的,需要额外处理。
现在遇到的问题:点击外屏会无反应(进入到程序会被禁止),通过服务改变卡片的ui并启动内屏的Ability。
UI方面:
<Image
ohos:height="65vp"
ohos:width="match_parent"
ohos:horizontal_center="true"
ohos:image_src="$media:card_book_text_icon"
ohos:scale_mode="zoom_center"/>
vp
相当于Android里的dp,fp
相当于Android里的sp。Ability:应用的重要组成部分,是应用所具备能力的抽象。Ability分为两种类型,Feature Ability和Particle Ability。
AbilitySlice:切片,是单个可视化界面及其交互逻辑的总和,是Feature Ability的组成单元。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。
Page Ability:用于提供与用户交互的能力。一个应用可以由多个Page组成,一个Page可以由一个或多个AbilitySlice构成,AbilitySlice是指应用的单个页面及其控制逻辑的总和。
Activity 用户与应用互动的入口点。一个应用可以由一个或多个Activity组成,一个Activity可以由零个,一个或多个Fragment构成。Fragment是FragmentActivity行为或界面的一部分。
生命周期 : Page Ability和Activity的比较相似
Page Ability | Activity |
---|---|
Page Ability启动模式:
standard相对于是Actvity的standard
。
singleton相对于是Actvity的singleInstance
。
singleMission相当于是Actvity的singleTask
。
常见库:http://www.androidchina.net/11863.html
三方库:https://bbs.elecfans.com/jishu_2075216_1_1.html
项目架构
主要三方组件
/**
* 搜索
*/
@POST("/search")
@FormUrlEncoded
Call> search(@Header("Cookie") String cookie,@Field("keywords") String keywords);
和Android里使用基本一致,Cookie可以直接通过这样的形式添加,@Header("Cookie") String Cookie
,也可以通过插值器添加,不过插值器方式还没跑通。
ApiUtil.getApiService().search(cookie,keywords).enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
if (response.isSuccessful()) {
if (response.body() != null) {
callBack.onSuccess(response.body().getData());
} else {
callBack.onError(response.message());
}
} else {
callBack.onError("");
}
}
@Override
public void onFailure(Call> call, Throwable t) {
callBack.onError(t.getMessage());
}
});
signingConfigs {
debug {
// 使用正式的p12,用正式的p12生成测试的p7b/cer
storeFile file('/Users/gcc/Documents/devecostudio-0908/workspace-huawei/hm-xxxx/key/xxxxRelease.p12')
storePassword '00000019965xxxxx024B0747A83xxxxxDE6E6E'
keyAlias = 'xxxxx'
keyPassword '000000194364CCE179C9BCAB021AD3DxxxxxA'
signAlg = 'SHA256withECDSA'
profile file('/Users/gcc/Documents/devecostudio-0908/workspace-huawei/hm-xxxx/key/release2Debug.p7b')
certpath file('/Users/gcc/Documents/devecostudio-0908/workspace-huawei/hm-xxxx/key/release2Debug.cer')
}
}
p12
文件,再用这个p12文件生成测试需要的p7b
/cer
文件一年
。清空应用数据
,可更改。真机调试配置需要获取udid
:
cd /Users/gcc/Documents/devecostudio-0908/huawei-sdk/toolchains
hdc shell bm get -udid
在HarmonyOS SDK的toolchains文件夹下 有一个hdc.exe
前提要将hdc的路径配置到环境变量
:
混淆:
release
运行一下鸿蒙相对于Android开发的优点是:
国产
免安装
,就相当于小程序。且鸿蒙折叠屏手机为卡片提供更多有趣的功能。交互
效果。得益于鸿蒙生态的优势,能在多个设备上互传。状态栏处理方便
,透明或去掉标题栏很简单就可以实现等兼容性
会很好,不用考虑很多机型适配问题。卡片
,相当于Android可玩性更强。缺点:
不成熟
,没有很成熟的架子。每个分类只有少数几个可用,且基本没有人维护或频次较低。系统Api待完善
。例如跳转到App,还会使用Android的部分代码,官方没有一个确认的方案;滚动布局
还需要具体的高度或宽度等布局预览
需要每次都点击刷新,不是实时更新,当然也有好坏,但是希望有个控制键tools
那样的预览效果,现在没找到怎么实现或者不能实现。Image
固定大小后会变模糊,暂时没找到原因。上架遇到的问题,key
附录:
华为鸿蒙系统应用 OpenHarmony JS 前端开发 基础入门教程-完结
时钟卡片示例