README.md

Bridge平台桥接应用示例

介绍

本示例是根据Bridge功能(提供ArkTS侧和原生侧消息通信的功能,包括数据传输、方法调用)构建页面组件、布局和逻辑的应用。

效果预览

Android平台
ArkTS主页 ArkTS侧点击"callMethod"按钮展示效果 Android原生主页 Android侧点击“callMethod”按钮展示效果
AndroidArkTS主页 AndroidArkTScallMethod AndroidNative主页 AndroidNativecallMethod
iOS平台
ArkTS主页 ArkTS侧点击"callMethod"按钮展示效果 iOS原生主页 iOS侧点击“callMethod”按钮展示效果
iOSArkTS主页 iOSArkTScallMethod iOSNative主页 iOSNativecallMethod

使用说明

1.打开app,进入ArKTS主页,主页面上方三个Button从左到右分别为"Native","重置文本","切换Type"。

  • "Native":实现ArkTS页面和Native页面的页面切换。
  • "重置文本":重置界面的“操作日志”文本组件内容。
  • "切换Type":切换当前Bridge对象的BridgeType。

2.点击“切换Type”按钮将BridgeType切换成JSON_TYPE,点击按钮“callMethod”,ArkTS调用平台侧方法"nativeFunc(String param)",调用成功后,ArkTS获取其函数返回值,在界面的“操作日志”文本组件输出结果。

3.点击按钮“Native”切换至平台原生界面。

4.点击“切换Type”按钮将BridgeType切换成JSON_TYPE,点击按钮“callMethod”,平台侧调用ArkTS侧已注册方法"ArkTSMethod(...parameters: bridge.Message[])",调用成功后,平台侧获取其函数返回值,在界面的“操作日志”文本组件输出结果。

工程目录

.
├── .arkui-x
│   ├── android
│   │   ├── app
│   │   │   └── src
│   │   │       └── main
│   │   │           ├── AndroidManifest.xml
│   │   │           ├── java
│   │   │           │   └── com
│   │   │           │       └── example
│   │   │           │           └── bridge
│   │   │           │               ├── BridgeManager.java					// Android端 Bridge核心管理器
│   │   │           │               ├── BridgeUtil.java						// Android端 实现Bridge核心功能
│   │   │           │               ├── EntryEntryAbilityActivity.java		// Android端 ArkTS Activity
│   │   │           │               ├── EntryNativeAbilityActivity.java		// Android端 原生 Activity
│   │   │           │               └── MyApplication.java
│   │   │           └── res
│   │   ├── build.gradle
│   │   ├── gradle
│   │   ├── gradle.properties
│   │   ├── gradlew
│   │   ├── gradlew.bat
│   │   └── settings.gradle
│   ├── arkui-x-config.json5
│   └── ios
│       ├── app
│       │   ├── AppDelegate.h
│       │   ├── AppDelegate.m
│       │   ├── Assets.xcassets
│       │   ├── Base.lproj
│       │   ├── bridge
│       │   │   ├── BridgeManager.h											// iOS端 Bridge核心管理器
│       │   │   ├── BridgeManager.m									
│       │   │   ├── BridgeUtil.h											// iOS端 实现Bridge核心功能
│       │   │   └── BridgeUtil.m
│       │   ├── entry
│       │   │   ├── EntryEntryAbilityViewController.h						// iOS端 ArkTS Activity
│       │   │   └── EntryEntryAbilityViewController.m
│       │   ├── Info.plist
│       │   ├── main.m
│       │   └── nativeAbility
│       │       ├── NativeAbilityViewController.h							// iOS端 原生 Activity
│       │       └── NativeAbilityViewController.m
│       └── app.xcodeproj
├── build-profile.json5
├── code-linter.json5
├── entry
│   ├── build-profile.json5
│   ├── hvigorfile.ts
│   ├── obfuscation-rules.txt
│   ├── oh-package.json5
│   └── src
│       └── main
│           ├── ets
│           │   ├── BridgeManager.ets										// ArkTS端 Bridge核心管理器
│           │   ├── BridgeUtil.ets											// ArkTS端 实现Bridge核心功能
│           │   ├── entryability
│           │   │   └── EntryAbility.ets
│           │   └── pages
│           │       └── EnterPage.ets										// ArkTS端 应用界面
│           ├── module.json5
│           └── resources
├── hvigor
│   └── hvigor-config.json5
├── hvigorfile.ts
├── oh-package.json5
├── README.md
└── screenshots

具体实现

相关权限

不涉及。

依赖

不涉及。

约束与限制

1.本示例仅支持标准Android和iOS和设备系统上运行。

2.本示例已适配API version 22及以上版本的ArkUI-X SDK。

3.本示例需要使用DevEco Studio 6.0.0 Release及以上版本才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo /SuperFeature/PlatformBridge > .git/info/sparse-checkout
git remote add origin https://gitcode.com/arkui-x/samples.git
git pull origin master