前端开发新体验,鸿蒙DevEco Studio与云测试全攻略

在前端开发的世界里,我们常常面临着多设备适配、快速迭代和用户体验优化的挑战。随着移动应用的复杂性不断增加,如何高效地开发和测试应用,同时确保它们在各种设备上都能提供出色的用户体验,成为了我们关注的焦点。

最近在开发鸿蒙系统应用的时候,关注到了鸿蒙 DevEco Studio

预览版的新特性,以及鸿蒙开发下如何解决前端开发不同设备适配和测试的思路,受益匪浅。它不仅提供了强大的开发工具和测试支持,还引入了一些独特的功能,如近场服务和App Linking,这些功能能够显著提升应用的交互性和用户体验。

本文将重点探讨鸿蒙开发中的三个关键模块:DevEco Studio、云测试与云调试,以及特色功能近场服务和App Linking。这些工具和功能如何帮助前端开发者更高效地开发应用,设置更多设备,同时提升用户体验。

    一、鸿蒙 DevEco Studio:更强的生态结合能力

目前DevEco Studio最新版是 DevEco Studio 6.0.0 Beta5,提供了丰富的项目模板,帮助前端开发者快速创建HarmonyOS

应用项目

新手一般都是基于Empty Ability,主要是用于Phone、Tablet、2in1、Car、Wearable、TV设备的模板,展示基础的Hello World功能。属于入门新手第一个模板项目。

DevEco Studio除了还提供了丰富的调试工具和实时预览UI的功能(实时预览和动态预览),方便开发者,在没有真机的情况下进行创作和开发。

实时预览主要指的是开发界面UI代码过程中,如果添加或删除了UI组件只需Ctrl+S进行保存,然后预览器就会立即刷新预览结果。

动图封面

动态预览可以在预览器中操作应用/元服务的界面交互动作,如单击、跳转、滑动等。

动图封面

历史上开发App的同学肯定很喜欢这个功能,因为它可以像web一样实时的反馈操作和效果。

DevEco Studio还有一个我特别喜欢的功能,就是数据模拟功能,由于代码的运行环境与真机设备上的运行环境不同,调用部分接口时无法获取到有效的返回值(例如获取电池电量信息等,在预览场景下batteryInfo.voltage返回的是一个固定的值0),就无法在预览时查看到不同返回值带来的界面变化。因此,Hamock提供了预览场景的模拟功能,在不改变业务运行逻辑的同时,开发者可以模拟UI组件上的属性或方法,或模拟import的模块接口。

import { MockKit, when, MockSetup } from '@ohos/hamock';

import { batteryInfo } from '@ohos.power';

 

// 创建一个 MockKit 实例

const mockKit = new MockKit();

 

// 模拟 batteryInfo.voltage 的返回值

when(mockKit.mock(batteryInfo, 'voltage')).thenReturn(3700); // 假设电压为 3700mV

 

// 使用模拟后的 batteryInfo

console.log(batteryInfo.voltage); // 输出 3700

上面就是一个实际的数据模拟方法,非常的方便。以上就是我历史上比较喜欢的一些DevEco Studio的功能。

除了以上的便利功能,还有一个Inspector双向预览的亮点能力非常值得一说,开启双向预览功能后,支持代码编辑器、UI界面和Component Tree组件树三者之间的联动:

在预览界面可以通过组件的属性面板修改可修改的属性或样式,在预览界面修改后,预览器会自动同步到代码编辑器中修改源码,并实时的刷新UI界面;同样的,如果在代码编辑器中修改源码,也会实时刷新UI界面,并更新组件树信息及组件属性。做到双向的预览同步。而且选中属性后,代码部分和预览界面也会同步高亮,非常方便定位和调试。

二、云测试与云调试:前端开发的设备适配的神器

1,云测试功能介绍和特点。

云测试是鸿蒙系统为开发者提供的一项强大工具,旨在解决开发者在设备机型不足和设备管理困难等问题上的痛点。通过云测试,开发者可以提前检测应用的兼容性、稳定性和性能,显著提升应用的上架效率。

云测试平台提供了300+鸿蒙真机,覆盖了华为的多种设备型号,可以通过设备列表进行常用的测试设备筛选和保存,减少了重复选择机型操作。

云测试平台还支持多种专项测试,包括兼容性测试、稳定性测试和性能测试等,并设置对应的测试时间,应用和。这些测试可以帮助开发者提前发现并解决应用在不同设备上的问题,确保应用的高质量发布。

最终生成如下的测试报告:

2,云调试功能介绍和优势

云调试是鸿蒙系统为开发者提供的另一项强大工具,旨在解决开发者在远程调试上的痛点。通过云调试,开发者可以快速获取目标机型,进行便捷的远程调试,快速复现和修改应用问题。

云调试功能允许开发者快速连接到远程设备,实时查看应用的运行状态,可以打开调试界面上传应用,类似一台可控的云手机。

应用上传完成之后可以通过HiLog查看应用的日志,支持导出。

当然也支持shell调试和截屏操作,如果用过云手机的同学应该比较了解这种远程调试的方法,非常方便处理不同机型上的兼容性问题。

三、特色功能:近场服务与App Linking

1,近场服务特色功能介绍

这个也是我比较喜欢的一个特色功能,顾名思义,它的功能是基于位置感知技术,通过小艺建议、花瓣地图等渠道智能推荐用户所需的服务。我以文旅行业为场景举几个例子:

景区门票推荐:当用户靠近景区时,通过位置感知技术,系统可以自动向用户推荐景区门票购买服务,用户无需手动搜索,即可快速获取购票信息并完成购买。

文创产品推荐:当用户在景区的文创商店附近时,近场服务可以向用户推荐相关的文创产品,增加用户的购买意愿。

以文创产品推荐为例子,开发者可以基于信标设备向用户推送内容卡片,通过意图注册和意图推送,让用户看到喜欢的商品推荐,进入开发者自己的APP落地页。具体的接入文档可以 查看这里

2,App Linking特色功能介绍

App Linking可以通过系统分享能力,实现扫码直达应用内容。它支持 Android、iOS、HarmonyOS 和 Web 等多种平台的跳转链接。无论用户是否已经安装了该应用,App Linking 都能够按照您指定的方式进行跳转,告别了传统的scheme link方式,还要兼容不同的生态系统。

他的使用场景比如用户在社交媒体上分享应用的内容链接,其他用户点击该链接后,可以直接拉起对应应用,查看链接内容。或者在广告中使用 App Linking 链接,用户点击链接后可以直接跳转到应用内指定页面,提升广告的转化率。

它的接入方法也非常简单,只需要应用开发者在服务域名上部署一个applinking.json,配置跳转规则以及在应用中接入App Linking SDK就可以了。

下边是一个Java的伪代码的接入方式,需要初始化App Linking的SDK,然后处理传入的参数,然后指定跳转的规则,以及注册和创建App Linking的分享链接。

// 1. 初始化 App Linking SDK

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

 

    // 初始化 App Linking SDK

    AGConnectAppLinking.initialize(this);

 

    // 检查是否有传入的链接

    handleIncomingLink();

}

 

// 2. 处理传入的链接

private void handleIncomingLink() {

    Intent intent = getIntent();

    if (intent != null && intent.getData() != null) {

        Uri uri = intent.getData();

        if (uri != null) {

            // 解析链接中的参数

            String deepLink = uri.getQueryParameter("deep_link");

            if (deepLink != null) {

                // 处理深度链接

                handleDeepLink(deepLink);

            }

        }

    }

}

 

// 3. 处理深度链接

private void handleDeepLink(String deepLink) {

    // 根据深度链接跳转到应用内的具体页面

    if (deepLink.equals("home")) {

        // 跳转到首页

        startActivity(new Intent(this, HomeActivity.class));

    } else if (deepLink.equals("product")) {

        // 跳转到产品详情页

        startActivity(new Intent(this, ProductActivity.class));

    } else {

        // 默认跳转到首页

        startActivity(new Intent(this, HomeActivity.class));

    }

}

 

// 4. 创建并分享 App Linking 链接

public void createAndShareLink(String deepLink) {

    // 构建 App Linking 链接

    AGConnectAppLinking.Builder builder = AGConnectAppLinking.newBuilder(this);

    builder.setDeepLink(deepLink);

    builder.setFallbackLink("https://example.com/fallback");

    builder.setAnalyticsParameters("utm_source=example&utm_medium=example&utm_campaign=example");

 

    // 生成长链接

    String longLink = builder.buildLongLink();

 

    // 分享链接

    shareLink(longLink);

}

 

// 5. 分享链接

private void shareLink(String link) {

    Intent shareIntent = new Intent(Intent.ACTION_SEND);

    shareIntent.setType("text/plain");

    shareIntent.putExtra(Intent.EXTRA_TEXT, link);

    startActivity(Intent.createChooser(shareIntent, "Share Link"));

}

4.                 四、总结

本文介绍了鸿蒙DevEco Studio与云测试的大部分功能点,其中DevEco Studio通过丰富的模板和实时预览调试工具等,显著提升了开发效率,同时也让我们更加期待一下鸿蒙PC版本下的DevEco Studio版本的公测。

云测试与云调试借助300+的鸿蒙真机,解决了设备适配难题,确保应用的高质量发布。而近场服务和App Linking则通过智能推荐和一步直达,优化了用户的前端体验。

这些工具和功能不仅提高了开发效率,还增强了应用的市场竞争力。随着鸿蒙系统的持续发展,我们期待更多鸿蒙的创新,为开发者和鸿蒙用户带来更多的开发体验与便利。

请使用浏览器的分享功能分享到微信等