arkts bridge使用示例
接上一篇:arkui-x跨平台与android java联合开发-CSDN博客
本篇讲前端arkui如何与后端其他平台进行数据交互,接上一篇,后端os平台为Android java。
arkui-x框架提供了一个独特的机制:bridge。
1、前端接口定义实现
定义一个bridge的class,里面创建平台桥接实例,就可以实现各种bridge接口。
这里实现了一个getThirdAppInfo接口,获取后端第三方应用的信息。参数为两个string,返回一个promise数据。promise也就是JavaScript中用于处理异步操作的一种机制,详细说法这里就不展开了。
DevEco Studio工程
import bridge from '@arkui-x.bridge';export class ThirdPartyBridge {// 创建平台桥接实例private thirdPartyBridge = bridge?.createBridge && bridge.createBridge('xBridge');public getThirdAppInfo(defaultCfg: string, sysAppList: string) {return new Promise<string>((resolve, reject) => {this.thirdPartyBridge.callMethod('getThirdAppInfo', defaultCfg, sysAppList).then((result) => {console.log("getThirdAppInfo: ", result)resolve(result ? result.toString() : "")}).catch((err: Error) => {console.log('getThirdAppInfo err', JSON.stringify(err))})})}
}
2、后端数据获取接口
Android Studio工程
import ohos.ace.adapter.capability.bridge.BridgeManager;
import ohos.ace.adapter.capability.bridge.BridgePlugin;@SuppressLint("LogNotTimber")
public class Bridge extends BridgePlugin {private static final String TAG = Bridge.class.getSimpleName();public Bridge(Context context, String name, BridgeManager bridgeManager) {super(context, name, bridgeManager);}
。。。。。。public String getThirdAppInfo(String defaultCfg, String sysAppStr) throws JSONException {
// Log.d("getThirdAppInfo", "---para1: " + defaultCfg + " para2: " + sysAppStr);List<JSONObject> retList = new ArrayList<>();
。。。。。。
// 实现获取数据的逻辑return retList.toString();}
。。。。。。
}
这里返回数据定义为json字符串,是为了方便前端解析。
3、前端调用bridge的业务代码实现
DevEco Studio工程
import { ThirdPartyBridge } from '../../bridge/ThirdPartyBridge';
import { DesktopShowCfg, ThirdPartyAppInfo } from '../../model/ThirdPartyAppInfo'export const getThirdAppInfo = async (defaultCfg: string, sysAppList: ThirdPartyAppInfo[]): Promise<ThirdPartyAppInfo[]> => {try {let sysAppStr: string = '[';
......// ThirdPartyAppInfo[]转为stringsysAppStr += ']'const bridge = new ThirdPartyBridge()const str = await bridge.getThirdAppInfo(defaultCfg, sysAppStr)console.log("---getThirdAppInfo", `获取第三方应用信息成功:` + str)let appInfoListList: ThirdPartyAppInfo[] = JSON.parse(str) as ThirdPartyAppInfo[]console.log("---getThirdAppInfo", `获取第三方应用信息,解析成功,app数量为:` + appInfoListList.length)return appInfoListList} catch (e) {console.log("---getThirdAppInfo", `获取第三方应用信息失败`, e.message)return []}
}
这里直接使用 JSON.parse(str) as ThirdPartyAppInfo[]方式实现了快速解析json。
相关文章:
arkts bridge使用示例
接上一篇:arkui-x跨平台与android java联合开发-CSDN博客 本篇讲前端arkui如何与后端其他平台进行数据交互,接上一篇,后端os平台为Android java。 arkui-x框架提供了一个独特的机制:bridge。 1、前端接口定义实现 定义一个bri…...
LINUX部署微服务项目步骤
项目简介技术栈 主体技术:SpringCloud,SpringBoot,VUE2, 中间件:RabbitMQ、Redis 创建用户 在linux服务器home下创建用户qshh,用于后续本项目需要的环境进行安装配置 #创建用户 useradd 用户名 #设置登录密…...
zsh安装插件
0 zsh不仅在外观上比较美观,而且其具有强大的插件,如果不使用那就亏大了。 官方插件库 https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins 官方插件库并不一定有所有的插件,比如zsh-autosuggestions插件就不再列表里,下面演示zs…...
网站如何正式上线(运维详解)
因为平台原因,不能有太多链接,所以下文中链接都删除了,想访问的去原文链接:https://www.zhoudongqi.com/ TIPS 这篇文章是我自己运营运维的wordpess站点的经验总结,可以说十分详细,域名,服务器和…...
SQL server 数据库使用整理
标题:SQL server 数据库使用整理 1.字符串表名多次查询 2.读取SQL中Json字段中的值:JSON_VALUE(最新版本支持,属性名大小写敏感) 1.字符串表名多次查询 SELECT ROW_NUMBER() OVER (ORDER BY value ASC) rowid,value…...
【Rust自学】17.2. 使用trait对象来存储不同值的类型
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 17.2.1. 需求 这篇文章以一个例子来介绍如何在Rust中使用trait对象来存储不同值的类型。 …...
初始化mysql报错cannot open shared object file: No such file or directory
报错展示 我在初始化msyql的时候报错:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解读: libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要,因此…...
2025年1月22日(网络编程)
系统信息: ubuntu 16.04LTS Raspberry Pi Zero 2W 系统版本: 2024-10-22-raspios-bullseye-armhf Python 版本:Python 3.9.2 已安装 pip3 支持拍摄 1080p 30 (1092*1080), 720p 60 (1280*720), 60/90 (640*480) 已安装 vim 已安装 git 学习…...
Jason配置环境变量
jason官网 https://jason-lang.github.io/ https://github.com/jason-lang/jason/releases 步骤 安装 Java 21 或更高版本 安装 Visual Studio Code 根据操作系统,请按照以下具体步骤操作 视窗 下载 Jason 的最新版本,选择“jason-bin-3.3.0.zip”…...
蓝桥杯python语言基础(7)——自定义排序和二分查找
目录 一、自定义排序 (一)sorted (二)list.sort 二、二分查找 bisect 一、自定义排序 (一)sorted sorted() 函数会返回一个新的已排序列表,而列表的 sort() 方法会直接在原列表上进行排序…...
(开源)基于Django+Yolov8+Tensorflow的智能鸟类识别平台
1 项目简介(开源地址在文章结尾) 系统旨在为了帮助鸟类爱好者、学者、动物保护协会等群体更好的了解和保护鸟类动物。用户群体可以通过平台采集野外鸟类的保护动物照片和视频,甄别分类、实况分析鸟类保护动物,与全世界各地的用户&…...
后盾人JS--闭包明明白白
延伸函数环境生命周期 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…...
redis的分片集群模式
redis的分片集群模式 1 主从哨兵集群的问题和分片集群特点 主从哨兵集群可应对高并发写和高可用性,但是还有2个问题没有解决: (1)海量数据存储 (2)高并发写的问题 使用分片集群可解决,分片集群…...
Kiwi 安卓浏览器本月停止维护,扩展功能迁移至 Edge Canary
IT之家 1 月 25 日消息,科技媒体 Android Authority 今天(1 月 25 日)发布博文,报道称 Kiwi 安卓浏览器将于本月停止维护,相关扩展支持功能已整合到微软 Edge Canary 浏览器中。 开发者 Arnaud42 表示 Kiwi 安卓浏览器…...
我的AI工具箱Tauri+Django内容生产介绍和使用
在现代内容生产环境中,高效、自动化的工具能够显著提升生产力,降低人工成本。Tauri 与 Django 结合打造的工作箱,集成了强大的 音频处理、视频剪辑、内容下载 以及 AI 文章撰写 等模块,帮助用户在多媒体内容生产的各个环节实现高效…...
四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)
四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用) 文章目录 四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)1. 有序集合 Zset(sorted set)2. zset 有序…...
Java---猜数字游戏
本篇文章所实现的是Java经典的猜数字游戏 , 运用简单代码来实现基本功能 目录 一.题目要求 二.游戏准备 三.代码实现 一.题目要求 随机生成一个1-100之间的整数(可以自己设置区间),提示用户猜测,猜大提示"猜大了",…...
网站快速收录:利用RSS订阅提升效率
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/27.html 利用RSS订阅可以显著提升网站内容的更新和收录效率,以下是一些具体的方法和策略: 一、RSS订阅的基本原理 RSS(ReallySimpleSyndication或RichS…...
vue3第三部分--组件通信
title: 组件通信 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端组件通信 目标:重点学习父子组件与兄弟组件的通信方式,以及插槽的作用与使用方式 父子组件通信 主要是通过props和自定义事件来实现 1.1 父 -> 子通信(通过 …...
DeepSeek R1-Zero vs. R1:强化学习推理的技术突破与应用前景
📌 引言:AI 推理的新时代 近年来,大语言模型(LLM) 的规模化扩展成为 AI 研究的主流方向。然而,LLM 的扩展是否真的能推动 通用人工智能(AGI) 的实现?DeepSeek 推出的 R1…...
STM32H743以太网实战:基于CubeMX 6.8.0与LAN8720的LWIP移植避坑指南
1. 环境准备与CubeMX基础配置 折腾了一周终于把STM32H743的以太网调通,发现网上大多数教程都存在配置遗漏。这里分享我的完整配置流程,从CubeMX安装到最终Ping通,每个步骤都经过实测验证。 首先确保安装STM32CubeMX 6.8.0和对应的HAL库。我遇…...
AI开发环境一键构建:模块化脚本实现基础设施即代码
1. 项目概述:一个为AI工作流量身定制的开发环境构建器如果你和我一样,经常在本地机器、云服务器甚至多台设备之间切换,只为折腾不同的AI模型、跑通某个开源项目,那你一定对“环境配置”这四个字深恶痛绝。今天要聊的这个项目dabyd…...
语音提示工程实战:从原理到应用,构建高质量AI语音交互
1. 项目概述:语音提示工程的“Awesome”宝库如果你正在探索语音AI应用,或者对如何让ChatGPT、Claude这类大语言模型“开口说话”感到好奇,那么你很可能已经遇到了一个核心难题:如何写出一个真正有效的语音提示词?这不仅…...
Python崛起背后的四大引擎:从数据科学到Web开发的全栈语言进化
1. 从数据看趋势:Python为何成为开发者社区的“流量明星”最近在Stack Overflow上看到一组数据,挺有意思的。数据科学家David Robinson指出,Python已经成为该平台上访问量增长最快的主流编程语言。这个结论不是空穴来风,而是基于对…...
开源简历解析工具Open-Resume:从数据模型到自动化生成全解析
1. 项目概述:一个开源的简历解析与构建工具最近在帮团队筛选简历和整理自己的履历时,我再次被简历格式不统一、信息提取困难的问题所困扰。无论是HR手动从PDF里复制粘贴,还是求职者为了适配不同岗位反复调整简历模板,这个过程都充…...
RT1064驱动ICM42605避坑指南:从SPI配置到数据转换,新手也能搞定的IMU实战
RT1064与ICM42605传感器深度开发实战:从硬件连接到数据处理的完整指南 在智能车和机器人竞赛中,精确的姿态感知系统往往是决定胜负的关键因素。恩智浦RT1064微控制器搭配TDK ICM42605六轴惯性测量单元(IMU)的方案,因其出色的性能和合理的成本…...
Nodejs后端服务接入Taotoken多模型API的完整配置指南
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Nodejs后端服务接入Taotoken多模型API的完整配置指南 对于Node.js后端开发者而言,将大模型能力集成到服务中已成为提升…...
告别命令行恐惧!用这个可视化软件5分钟搞定Abaqus三维Voronoi泡沫模型
零代码革命:5分钟用可视化工具构建Abaqus三维Voronoi泡沫模型 在材料科学与工程仿真领域,Voronoi结构因其独特的几何特性,成为模拟泡沫、多孔材料和晶体结构的黄金标准。然而传统建模方法对编程技能的硬性要求,让许多材料工程师和…...
量子振荡与拓扑输运调控:从实验测量到主动驾驭
1. 项目概述:从“驾驭”一词说起“如何在量子振荡中驾驭拓扑量子输运?”——当我第一次看到这个问题时,脑海里浮现的不是复杂的公式,而是一个更形象的画面:你驾驶着一艘小船,航行在一片由无数微小漩涡&…...
3PEAK思瑞浦 TPA1811-S5TR SOT23-5 精密运放
特性 供电电压:4伏至30伏 低功耗:在25C时为55A(典型值) 低偏置电压:8V在25C(最大值) 零漂:0.01V/C 轨到轨输出 增益带宽积:500kHz 斜率:0.3V/us...
