平行视界应用示例

介绍

平行视界以Activity作为基本单位,利用左右窗口分离显示技术双窗口生命周期管理、双窗口显示模式和切换逻辑等核心技术,实现应用内分屏的系统级解决方案。应用可以根据自身业务需求设计分屏显示的Activity组合,最优的单应用多窗口用户体验,并支持一次开发、多端部署。

有关详细的配置指导请参考平行视界开发指南

效果预览

Android 平台
主页面展示效果 分屏展示效果
android_main android_mapview

使用说明

1.打开 app,主页面标题文本为 “应用界面-X”。

2.点击按钮 “进入分屏界面-A”,触发分屏展示,左侧页面标题文本为 “应用界面-X”;右侧页面标题文本为 “应用界面-A”。

3.左分屏页面点击按钮 “进入分屏界面-A1”,触发右分屏界面刷新,新页面标题文本为 “应用界面-A1”。

4.左分屏页面点击按钮 “进入分屏界面-A”,触发右分屏界面刷新,新页面标题文本为 “应用界面-A”。右分屏点击界面按钮 “进入分屏界面-B”。触发新的分屏展示,左分屏展示页面标题文本为 “应用界面-A”;右分屏页面标题文本为 “应用界面-B”。

5.在步骤4的结果界面基础上,左分屏页面点击按钮 “视频播放”,进入视频播放页面。

6.在步骤4的结果界面基础上,左分屏页面点击按钮 “WebView”,进入网页页面。(正确查看网页需提前为手机连接网络)

工程目录

.arkui-x
    ├── android
    │   ├── app
    │   │   ├── build.gradle
    │   │   └── src
    │   │       └── main
    │   │           ├── AndroidManifest.xml
    │   │           ├── assets
    │   │           │   └── easygo.json			//平行视界核心配置文件
    │   │           ├── java
    │   │           │   └── com
    │   │           │       └── example
    │   │           │           └── splitscreenview
    │   │           │               ├── EntryEntryAbilityActivity.java
    │   │           │               ├── EntryFeature1AbilityActivity.java
    │   │           │               ├── EntryFeature2AbilityActivity.java
    │   │           │               ├── EntryFeature3AbilityActivity.java
    │   │           │               ├── EntryMain1AbilityActivity.java
    │   │           │               ├── EntryMain2AbilityActivity.java
    │   │           │               ├── EntryMain3AbilityActivity.java
    │   │           │               ├── MyApplication.java
    │   │           │               ├── MyPlatformViewFactory.java
    │   │           │               ├── MyVideoView.java
    │   │           │               └── MyWebView.java
    │   │           └── res
    │   │               ├── drawable
    │   │               │   └── arkuix.png
    │   │               └── values
    │   │                   └── strings.xml
    │   ├── buildArkTS
    │   ├── buildArkTS.bat
    │   ├── build.gradle
    │   ├── gradle
    │   ├── gradle.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── arkui-x-config.json5

具体实现

  • 创建多个Activity实例,分别加载页面“应用界面-X”、“应用界面-A”、“应用界面-B”、“应用界面-A1”等。
  • 于.arkui-x/android/app/src/main/assets/easygo.json中实现平行视界的相关配置,可参考平行视界开发指南
  • 平台侧实现 PlatformVIew 相关接口,用于加载视频播放。
  • 平台侧实现 PlatformVIew 相关接口,用于加载网页。

相关权限

需要网络权限。

约束与限制

1.本示例仅支持 Android系统的折叠屏设备和平板设备上运行。要求运行设备系统本身支持平行视界功能。安装应用后在系统设置中打开应用的“平行视界”开关。

注意:不同设备系统关于“平行视界”功能的描述名称、相应系统设置的设置方式请以实际厂家标准为准。

2.本示例已适配 API version 20以上版本的 ArkUI-X SDK,需要配套 API version 20以上版本的 OpenHarmony SDK。

3.本示例需要使用 API version 20以上版本的 DevEco Studio才可编译运行。

下载

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

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