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

bmob Harmony鸿蒙快速开发搜索功能

搜索功能是很多应用都需要的功能。在很多平台上,要开发一个兼容性较好的搜索功能都还是需要添加比较多的视图代码的。

为了解决这个问题,鸿蒙ArkUI提供了一个快速添加搜索功能的视图组件给我们,结合Bmob Harmony鸿蒙SDK的搜索能力,我们可以在非常短的时间内,给应用添加搜索功能。这就是本文给大家带来的案例,界面效果如下:

2.png

1.png

创建鸿蒙项目,选择Stage模型,API9.0,然后在DevEco Studio 开发工具的命令行(Terminal)中执行下面的命令,安装Bmob Harmony SDK:

ohpm install @bmob/bmob

如果一切顺利,你会在当前项目下的oh_modules目录下看到@bmob/bmob的包已经成功下载,如下图所示:

image.png

二、获取密钥

登录 Bmob后端云 ,创建应用,获取Secret Key和Secret Code,如下图所示:

image.png

三、初始化应用

在你创建的鸿蒙应用中,entry/src/main/ets 下面新建一个ArkTS File,名为BmobApp。代码如下:

import { Bmob } from '@bmob/bmob';
import AbilityStage from '@ohos.app.ability.AbilityStage';
export default class BmobApp extends AbilityStage {onCreate() {super.onCreate();Bmob.initialize('你的Secret Key', '你的Secret Code')}
}

四、配置网络权限和设置应用入口

打开 entry/src/main/module.json5 文件,在module节点下面新增 srcEntry 和 requestPermissions 子节点,配置如下:

{"module": {"name": "entry","type": "entry","description": "$string:module_desc","mainElement": "EntryAbility","deviceTypes": ["phone","tablet"],"srcEntry": "./ets/BmobApp.ets","requestPermissions": [{"name": "ohos.permission.INTERNET"}],...省略更多}
}

image.png

五、编写ArkUI布局文件

这里使用到了鸿蒙的Search组件和List组件,其中Search组件主要是用来呈现搜索的界面效果,List组件主要用来呈现搜索结果。

为了保存搜索结果和搜索框的输入内容,我们首先需要定义两个@State变量,其中,changeValue是存储用户输入的搜索内容,lists是Bmob后端云中返回的搜索结果。代码如下:

@State changeValue: string = ''
@State lists:any = []

布局文件如下:

build() {Stack({alignContent:Alignment.Top}){Column() {Search({value:this.changeValue,placeholder:'请输入你的搜索内容'}).searchButton('搜索').width('95%').height(40).align(Alignment.TopStart).backgroundColor('#F5F5F5').placeholderColor(Color.Gray).placeholderFont({size:14,weight:400}).textFont({size:14,weight:400}).onSubmit((value)=>{this.search(value)}).onChange((value)=>{this.changeValue = value})List({space:10}){ForEach(this.lists,item=>{ListItem(){Column(){Text(item.messages).maxLines(3).margin({bottom:5})Divider().strokeWidth(8).color('#f5f5f5')}}})}}.width('100%')}.height('100%')
}

六、执行搜索任务

这里执行搜索的内容Bmob后端云ai_log表中的messages字段。这是Bmob后端云推出来的AI对话服务的对话日志表,表的结构如下:

3.png

整个搜索执行代码非常简单,主要是调用Bmob.Querywhere查询,用到了LIKE这个模糊查询方法,具体代码如下:

search(value){if(value==''){Prompt.showToast({message:'请输入搜索内容'})return}let query = Bmob.Query('ai_log')query.where(LIKE('messages',value)).find().then((res)=>{if(res.length<=0){this.lists = []Prompt.showToast({message:'没有找到对应的内容'})}else{res.forEach((r)=>{this.lists.push(r)})}}).catch((err)=>{Prompt.showToast({message:err.error})})
}

七、源码分享

本案例的源码下载地址:https://gitee.com/zhang-ming-123/bmob-harmony-demo/tree/master/bmobsearch

http://www.lryc.cn/news/392121.html

相关文章:

  • 软通动力子公司鸿湖万联最新成果SwanLink AI亮相世界人工智能大会
  • 查看Linux系统中日志文件
  • 技术干货|如何轻松完成空调管路的随机振动分析以及疲劳寿命预测
  • 中英双语介绍中国的城市:上海市(Shanghai)
  • 代码随想录算法训练营第75天:总结篇[1]
  • 眼动追踪技术 | 眼动的分类和模型
  • 如何使用PHP根据输入文字动态调整图片尺寸?
  • 3.js - hdr贴图 是什么,有什么用
  • Nature Communications|用于电子皮肤的自主自愈晶体管(柔性半导体器件/电子皮肤/柔性电子)
  • 6月30日功能测试Day10
  • 无人机对地面运动目标定位---获取目标的移动方向和速度
  • 管理才是最根本的核心竞争力
  • Raid阵列中硬盘损坏后,新硬盘可以直接换上吗?
  • Python爬虫康复训练——笔趣阁《神魂至尊》
  • Kaptcha验证码
  • Rufus 制作启动盘 | 便携的工作空间
  • python函数参数
  • 深入理解 XML 和 HTML 之间的区别
  • 代码随想录算法训练营第四十四天|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
  • YOLOv8改进 添加CVPR2024 PKINet中注意力机制CAAttention
  • 油猴Safari浏览器插件:Tampermonkey for Mac 下载
  • 如何在Vue中添加事件监听器
  • 软设之UML图中的用例图
  • 弹性伸缩高性能计算服务一一黑石裸金属服务器
  • 欢乐钓鱼大师攻略:西沙群岛攻略,内置自动辅助云手机!
  • Apipost接口测试工具的原理及应用详解(六)
  • 矩阵的奇异值(Singular Values)
  • 清空flowable的表定义的相关表
  • Tailwind CSS 在vue里 的使用
  • 【人工智能】--强化学习(2.0)