diff --git a/JSCleanCalculator/entry/src/ohosTest/js/default/pages/index/index.js b/JSCleanCalculator/entry/src/ohosTest/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..8be2df2479a8da755ed800ad70d2b6247e21b8a2
--- /dev/null
+++ b/JSCleanCalculator/entry/src/ohosTest/js/default/pages/index/index.js
@@ -0,0 +1,41 @@
+import file from '@system.file'
+import app from '@system.app'
+import device from '@system.device'
+import router from '@system.router'
+import {Core, Constant, ExpectExtend, ReportExtend, InstrumentLog} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ const reportExtend = new ReportExtend(file)
+ const instrumentLog = new InstrumentLog({
+ 'id': 'report',
+ 'version': '1.0.3'
+ })
+ core.addService('expect', expectExtend)
+ core.addService('report', reportExtend)
+ core.addService('report', instrumentLog)
+ core.init()
+ core.subscribeEvent('spec', instrumentLog)
+ core.subscribeEvent('suite', instrumentLog)
+ core.subscribeEvent('task', instrumentLog)
+
+ const configService = core.getDefaultService('config')
+ configService.setConfig(this)
+
+ require('../../../test/List.test')
+ core.execute()
+ },
+ onReady() {
+ },
+}
\ No newline at end of file
diff --git a/JSCleanCalculator/entry/src/ohosTest/js/test/ExampleJsunit.test.js b/JSCleanCalculator/entry/src/ohosTest/js/test/ExampleJsunit.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6d74caed96ddede98edd1bc9292f6568cd1cfd1
--- /dev/null
+++ b/JSCleanCalculator/entry/src/ohosTest/js/test/ExampleJsunit.test.js
@@ -0,0 +1,10 @@
+import app from '@system.app'
+import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+describe('appInfoTest', function () {
+ it('app_info_test_001', 0, function () {
+ var info = app.getInfo()
+ expect(info.versionName).assertEqual('1.0')
+ expect(info.versionCode).assertEqual('3')
+ })
+})
\ No newline at end of file
diff --git a/JSCleanCalculator/entry/src/ohosTest/js/test/List.test.js b/JSCleanCalculator/entry/src/ohosTest/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..305eb5bb254cd4802afaffebe68fca2f9436159f
--- /dev/null
+++ b/JSCleanCalculator/entry/src/ohosTest/js/test/List.test.js
@@ -0,0 +1 @@
+require('./ExampleJsunit.test.js')
\ No newline at end of file
diff --git a/JSCleanCalculator/entry/src/ohosTest/resources/base/element/string.json b/JSCleanCalculator/entry/src/ohosTest/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..ebab015692df3d2f9381f296572edb059f873c6f
--- /dev/null
+++ b/JSCleanCalculator/entry/src/ohosTest/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "CleanCalculatorBeta"
+ },
+ {
+ "name": "mainability_description",
+ "value": "hap sample empty page"
+ }
+ ]
+}
diff --git a/JSCleanCalculator/entry/src/ohosTest/resources/base/media/icon.png b/JSCleanCalculator/entry/src/ohosTest/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/JSCleanCalculator/entry/src/ohosTest/resources/base/media/icon.png differ
diff --git a/JSCleanCalculator/gradle.properties b/JSCleanCalculator/gradle.properties
new file mode 100644
index 0000000000000000000000000000000000000000..be492496f9a20ac2d980ef4fc30061f4184c1c40
--- /dev/null
+++ b/JSCleanCalculator/gradle.properties
@@ -0,0 +1,13 @@
+# Project-wide Gradle settings.
+# IDE (e.g. DevEco Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# If the Chinese output is garbled, please configure the following parameter.
+# This function is enabled by default when the DevEco Studio builds the hap/app,if you need disable gradle parallel,you should set org.gradle.parallel false.
+# more information see https://docs.gradle.org/current/userguide/performance.html
+# org.gradle.parallel=false
+# org.gradle.jvmargs=-Dfile.encoding=GBK
\ No newline at end of file
diff --git a/JSCleanCalculator/gradle/wrapper/gradle-wrapper.jar b/JSCleanCalculator/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..490fda8577df6c95960ba7077c43220e5bb2c0d9
Binary files /dev/null and b/JSCleanCalculator/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/JSCleanCalculator/gradle/wrapper/gradle-wrapper.properties b/JSCleanCalculator/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000000000000000000000000000000000..f59159e865d4b59feb1b8c44b001f62fc5d58df4
--- /dev/null
+++ b/JSCleanCalculator/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-6.3-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/JSCleanCalculator/gradlew b/JSCleanCalculator/gradlew
new file mode 100644
index 0000000000000000000000000000000000000000..2fe81a7d95e4f9ad2c9b2a046707d36ceb3980b3
--- /dev/null
+++ b/JSCleanCalculator/gradlew
@@ -0,0 +1,183 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/JSCleanCalculator/gradlew.bat b/JSCleanCalculator/gradlew.bat
new file mode 100644
index 0000000000000000000000000000000000000000..62bd9b9ccefea2b65ae41e5d9a545e2021b90a1d
--- /dev/null
+++ b/JSCleanCalculator/gradlew.bat
@@ -0,0 +1,103 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/JSCleanCalculator/settings.gradle b/JSCleanCalculator/settings.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..4773db73233a570c2d0c01a22e75321acfbf7a07
--- /dev/null
+++ b/JSCleanCalculator/settings.gradle
@@ -0,0 +1 @@
+include ':entry'
diff --git a/NewsClientOpenHarmony/.gitignore b/NewsClientOpenHarmony/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..fdc0c4a65db238be4186f16e1e0911b1d61fbf31
--- /dev/null
+++ b/NewsClientOpenHarmony/.gitignore
@@ -0,0 +1,16 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+/entry/.preview
+.cxx
+/node_modules
diff --git a/NewsClientOpenHarmony/README.md b/NewsClientOpenHarmony/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d91a7b2baac914c9af86ab2d3a00c9a784dbc82
--- /dev/null
+++ b/NewsClientOpenHarmony/README.md
@@ -0,0 +1,3 @@
+# NewsDemoOpenHarmony
+
+NewsDemoOpenHarmony
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/build.gradle b/NewsClientOpenHarmony/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..8799f5699f310d9eae610495af273881cd62fc35
--- /dev/null
+++ b/NewsClientOpenHarmony/build.gradle
@@ -0,0 +1,44 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+apply plugin: 'com.huawei.ohos.app'
+
+//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
+ohos {
+ signingConfigs {
+ debug {
+ storeFile file('D:\\OpenHarmony\\openHos\\openhos.p12')
+ storePassword '0000001878FE3D655ADCE56B5F8BEB1E5381269D2682B4FEEF6C1C12BBE4A517743D0CCF94B4BE9D'
+ keyAlias = 'hw'
+ keyPassword '00000018E7EE50B0F8E10923DDEE2CF8C32C9BEBCA59F6C89B01B81C796F03F1AC9B147C649321A2'
+ signAlg = 'SHA256withECDSA'
+ profile file('D:\\OpenHarmony\\openHos\\openHos.p7b')
+ certpath file('D:\\OpenHarmony\\openHos\\openHos.cer')
+ }
+ }
+ compileSdkVersion 6
+}
+
+buildscript {
+ repositories {
+ maven {
+ url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/'
+ }
+ maven {
+ url 'http://mirrors.tools.huawei.com/maven/'
+ }
+ }
+ dependencies {
+ classpath 'com.huawei.ohos:hap:3.0.1.5'
+ classpath 'com.huawei.ohos:decctest:3.0.1.1'
+ }
+}
+
+allprojects {
+ repositories {
+ maven {
+ url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/'
+ }
+ maven {
+ url 'http://mirrors.tools.huawei.com/maven/'
+ }
+ }
+}
diff --git a/NewsClientOpenHarmony/entry/.gitignore b/NewsClientOpenHarmony/entry/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..7d5b7a94f4dcf381f03ff21f28f8a2494b58023f
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/.gitignore
@@ -0,0 +1,2 @@
+/build
+/node_modules
diff --git a/NewsClientOpenHarmony/entry/build.gradle b/NewsClientOpenHarmony/entry/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..6c2dca308825d3d38937c45c03918e1628bbfb75
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/build.gradle
@@ -0,0 +1,23 @@
+apply plugin: 'com.huawei.ohos.hap'
+//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
+ohos {
+ compileSdkVersion 6
+ defaultConfig {
+ compatibleSdkVersion 6
+ }
+ buildTypes {
+ release {
+ proguardOpt {
+ proguardEnabled false
+ rulesFiles 'proguard-rules.pro'
+ }
+ }
+ }
+
+ supportSystem "standard"
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
+ testImplementation 'junit:junit:4.13'
+}
diff --git a/NewsClientOpenHarmony/entry/package.json b/NewsClientOpenHarmony/entry/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..0967ef424bce6791893e9a57bb952f80fd536e93
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/package.json
@@ -0,0 +1 @@
+{}
diff --git a/NewsClientOpenHarmony/entry/proguard-rules.pro b/NewsClientOpenHarmony/entry/proguard-rules.pro
new file mode 100644
index 0000000000000000000000000000000000000000..f7666e47561d514b2a76d5a7dfbb43ede86da92a
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/proguard-rules.pro
@@ -0,0 +1 @@
+# config module specific ProGuard rules here.
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/config.json b/NewsClientOpenHarmony/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..4e873c33132ac3e04e99c1cb5bde9181a70052d7
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/src/main/config.json
@@ -0,0 +1,67 @@
+{
+ "app": {
+ "bundleName": "com.huawei.newsdemo",
+ "vendor": "demo",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.huawei.newsdemo",
+ "name": ".MyApplication",
+ "mainAbility": "com.huawei.newsdemo.MainAbility",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry",
+ "installationFree": false
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "orientation": "unspecified",
+ "visible": true,
+ "name": "com.huawei.newsdemo.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "formsEnabled": false,
+ "label": "$string:NewsClient",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index",
+ "pages/detail/detail"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ],
+ "distroFilter": {
+ "apiVersion": {
+ "policy": "include",
+ "value": []
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/app.js b/NewsClientOpenHarmony/entry/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d060ffe5682c19fc83e2274a9e62cbc40a655f8
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/src/main/js/default/app.js
@@ -0,0 +1,8 @@
+export default {
+ onCreate() {
+ console.info("Application onCreate");
+ },
+ onDestroy() {
+ console.info("Application onDestroy");
+ }
+};
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/data/data.js b/NewsClientOpenHarmony/entry/src/main/js/default/common/data/data.js
new file mode 100644
index 0000000000000000000000000000000000000000..60214269a91ee63c70573ac503af5868c3afa08a
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/src/main/js/default/common/data/data.js
@@ -0,0 +1,182 @@
+
+export const titles= [
+ {
+ "name": "All"
+ },
+ {
+ "name": "Health"
+ },
+ {
+ "name": "Finance"
+ },
+ {
+ "name": "Technology"
+ },
+ {
+ "name": "Sport"
+ },
+ {
+ "name": "Internet"
+ },
+ {
+ "name": "Game"
+ }
+]
+
+export const newsData = [
+ {
+ "title": "Best Enterprise Wi-Fi Network Award of the Wireless Broadband Alliance 2020",
+ "type": "Health",
+ "imgUrl": "/common/images/news_image1.jpg",
+ "reads": "54",
+ "likes": "81",
+ "content": "Recently, at the Wireless Broadband Alliance (WBA), an international industry organization, Huawei's AirEngine Wi-Fi 6 Solution Helps Factory Digital Transformation WBA 2020 Wi-Fi Industry Best Enterprise Wi-Fi Network Award. This is the first time that a Chinese Wi-Fi 6 vendor has won this award, which reflects the full recognition of Huawei AirEngine Wi-Fi 6 by global enterprise users."
+ },
+ {
+ "title": "Latest technology and industry weather vane",
+ "type": "Health",
+ "imgUrl": "/common/images/news_image2.jpg",
+ "reads": "100",
+ "likes": "354",
+ "content": "With the large-scale commercial use of new technologies such as 5G, IoT, cloud computing, and AI, industry digital transformation has entered deep water. In addition, the sudden epidemic and carbon-neutral targets accelerate the transformation of society towards intelligence. When energy technologies are combined with power electronics and digital technologies, what direction will site energy develop?"
+ },
+ {
+ "title": "Openness and Cooperation Facilitate Industry Upgrade",
+ "type": "Finance",
+ "imgUrl": "/common/images/news_image3.jpg",
+ "reads": "74",
+ "likes": "91",
+ "content": "Under the background of new infrastructure construction, digital transformation will face great pressure in power consumption. According to analysis data, it is estimated that the number of communication sites will increase to 70 million by 2025, and the annual power consumption will exceed 660 billion kWh. The data center will increase to 24 million racks, and the annual power consumption will exceed 950 billion kWh. In pan-industrial scenarios, the annual power consumption of rail transportation and industrial manufacturing alone will exceed 16 trillion kWh There are 40 billion smart terminals, and the annual power consumption will reach 210 billion kWh. The 40 billion mobile terminals under the 21 billion kWh power are driven by the transformation of social media and digital life."
+ },
+ {
+ "title": "High-voltage super-fast charging is an inevitable trend",
+ "type": "Finance",
+ "imgUrl": "/common/images/news_image4.jpg",
+ "reads": "44",
+ "likes": "82",
+ "content": "Consumers have a lot of doubts about buying electric cars, compared to fuel cars. Wang Chao pointed out that among the factors affecting the purchase of electric vehicles, charging problems account for 80 percent, with a small number of charging piles (currently, the ratio of piles is 3.2:1) and a long charging time being the first to bear the brunt. As a result, many players in the charging infrastructure sector are looking for a break. To alleviate consumers' pain points of poor charging experience, we need to improve the pile ratio and shorten the charging time to meet consumers' requirements for fast charging."
+ },
+ {
+ "title": "Huawei Releases the New Trend of Modular Power Supply, Facilitating Industry Upgrade Through Open Cooperation",
+ "type": "Technology",
+ "imgUrl": "/common/images/news_image5.jpg",
+ "reads": "73",
+ "likes": "888",
+ "content": "Under the background of new infrastructure construction, digital transformation will face great pressure in power consumption. According to analysis data, it is estimated that the number of communication sites will increase to 70 million by 2025, and the annual power consumption will exceed 660 billion kWh. The data center will increase to 24 million racks, and the annual power consumption will exceed 950 billion kWh. In pan-industrial scenarios, the annual power consumption of rail transportation and industrial manufacturing alone will exceed 16 trillion kWh. There are 40 billion smart terminals, and the annual power consumption will reach 210 billion kWh. The 40 billion mobile terminals under the 21 billion kWh power are driven by the transformation of social media and digital life."
+ },
+ {
+ "title": "Ten Future Trends of Digital Energy",
+ "type": "Technology",
+ "imgUrl": "/common/images/news_image6.jpg",
+ "reads": "100",
+ "likes": "354",
+ "content": "Energy digitalization is an inevitable trend. Innovative integration of digital and energy technologies enables end-to-end visual, manageable, and controllable intelligent management of energy infrastructure, improving energy efficiency.\nGreen power will benefit thousands of industries and households in the future. Green power, represented by PV, will become the main energy source. The era of price-effective PV is coming, and the integration of distributed power generation and solar storage will become an inevitable trend. Green Power will also help the ICT industry reduce its carbon footprint. In the future, we will build a \"zero-carbon network\" and \"zero-carbon\" data center. In addition, Huawei proposed the trend of full-link efficiency for the first time and implemented global optimization in terms of architecture and system."
+ },
+ {
+ "title": "Ascend Helps Industry, Learning, and Research Promote AI Industry Development in the National AI Contest",
+ "type": "Sport",
+ "imgUrl": "/common/images/news_image7.jpg",
+ "reads": "123",
+ "likes": "911",
+ "content": "The holding of the National AI Contest further fulfilled the requirements of the Ministry of Science and Technology and the Ministry of Industry and Information Technology for Shenzhen to build the national new-generation AI innovation and development trial zone and the AI innovation and application pilot zone. It also promoted the integration and development of innovation elements such as industry, academia, capital, and talent, create an AI innovation atmosphere. Huawei has co-hosted two National AI Competitions in a row, aiming to promote technological progress, industrial upgrade, economic transformation, and social progress, and jointly promote the implementation of AI technologies. This is the most practical point for Huawei and the National AI Competition."
+ },
+ {
+ "title": "Enterprise data centers are moving towards autonomous driving network",
+ "type": "Sport",
+ "imgUrl": "/common/images/news_image8.jpg",
+ "reads": "754",
+ "likes": "149",
+ "content": "More than 90% of enterprises say that fully autonomous driving data center network is their goal to achieve business agility, flexibility, and cost-effectiveness. This is a key research result in the data center network Autonomous Driving Index Report released by Huawei and IDC. Autonomous driving data center network helps enterprises restructure network architectures and operation models and enhance business resilience and continuity. In addition, regardless of the current level of data center network automation, IDC offers some guidance on how enterprises can move forward and move towards full automation."
+ },
+ {
+ "title": "One optical fiber lights up a green smart room",
+ "type": "Internet",
+ "imgUrl": "/common/images/news_image9.jpg",
+ "reads": "631",
+ "likes": "714",
+ "content": "At the 2020 China Real Estate Development Summit held in Guangzhou, Jin Yuzhi, President of Huawei's Transmission and Access Product Line, delivered a keynote speech entitled \"One Fiber Lights Green Smart Rooms\" to discuss the convergence development trend of optical networks and real estate industries, proposes that optical fibers are the standard configuration of F5G smart real estate, and shares seven reasons for choosing Fiber to the Room (FTTR) all-optical home networking, we call on industry partners to work together to build an F5G real gigabit all-optical room ecosystem."
+ },
+ {
+ "title": "BWS2020: Accelerate Network Autonomy and Enable Agile Business",
+ "type": "Internet",
+ "imgUrl": "/common/images/news_image10.jpg",
+ "reads": "53",
+ "likes": "824",
+ "content": "Currently, millions of enterprises embrace changes and accelerate their cloudification. SaaS traffic surges. Enterprise cloudification and multi-cloud collaboration become the new focus of cloud-network synergy . To address this challenge, Guo Dazheng, president of Huawei's data communications field, said: \"In cloud-network scenarios, iMaster NCE implements network as a service to help carriers provide cloud-network integration services and meet enterprise cloud access requirements.\" In 5G transport scenarios, improve the automation capability of the entire process of planning, construction, maintenance, and optimization to meet the requirements of large-scale 5G network construction and cloud network cost reduction and efficiency improvement."
+ },
+ {
+ "title": "Trust technology, embrace openness, and share the world prosperity brought by technology",
+ "type": "Game",
+ "imgUrl": "/common/images/news_image11.jpg",
+ "reads": "1500",
+ "likes": "3542",
+ "content": "Huawei successfully held the TrustInTech 2020 online summit today. Ryan Ding, Executive Director of Huawei, President of the Carrier BG, and Jim Rogers, a senior Wall Street investor, GSMA Chief Marketing Officer Stephanie Lynch-Habib and other ICT industry experts and economists from around the world attended the summit. The summit pointed out that ICT has become a digital foundation for economic development and people's livelihood. In an era of accelerated commercial use of 5G, the world needs to embrace openness and cooperation to eliminate unnecessary resistance and fears about new technologies and transnational cooperation, thereby sharing the world prosperity brought by technology."
+ },
+ {
+ "title": "Intelligent Twins Won the Leading Technology Achievement Award at the 7th World Internet Conference",
+ "type": "Game",
+ "imgUrl": "/common/images/news_image12.jpg",
+ "reads": "7451",
+ "likes": "9511",
+ "content": "Today, the Leading Technology Award was unveiled at the 7th World Internet Conference. As the industry's first systematic technical reference architecture for government and enterprise intelligence upgrade, intelligent virtual appliances have been recognized by experts and judges and won the Leading Scientific Achievement Award for their exploration and practice in various industries. This is the fifth time Huawei has won this award since 2016. The World Internet Leading Science and Technology Award showcases the latest technologies in the global ICT field and focuses on the best practices of innovative technologies in the fields of science and technology fight against epidemics, recovery of work, and promotion of digital economic development and cooperation."
+ },
+ {
+ "title": "4G/5G FWA, New Engine for Revenue Growth",
+ "type": "Health",
+ "imgUrl": "/common/images/news_image13.jpg",
+ "reads": "445",
+ "likes": "872",
+ "content": "The reason why FWA is growing so fast is that it provides new opportunities for carriers in the consumer market. For example, a Philippine operator used 4G FWA to rapidly develop home broadband users. According to its third quarter financial report, the operator has successfully developed 2.78 million new users this year, accounting for 80% of the total broadband users. The percentage of broadband revenue increased from 12.3% in 2017 to 17.9%. With the development of wireless technologies, 5G FWA can provide gigabit home access experience similar to that of optical fibers, meeting services such as 4K/8K HD video and AR/VR interactive experience."
+ },
+ {
+ "title": "Down! CPI released in November! These things are cheap",
+ "type": "Finance",
+ "imgUrl": "/common/images/news_image14.jpg",
+ "reads": "734",
+ "likes": "8788",
+ "content": "Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap."
+ },
+ {
+ "title": "Comedy movie \"Big Red Envelope\" is set to celebrate the New Year",
+ "type": "Technology",
+ "imgUrl": "/common/images/news_image15.jpg",
+ "reads": "1010",
+ "likes": "3534",
+ "content": "Comedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New Year"
+ },
+ {
+ "title": "Three living things are smart",
+ "type": "Sport",
+ "imgUrl": "/common/images/news_image16.jpg",
+ "reads": "1243",
+ "likes": "9141",
+ "content": "Lifan said at the press conference: \"Retrospective on the journey, we have always adhered to the spirit of initiative, innovation and science. Build core capabilities in terms of networks, technologies, and platforms, and deliver excellent services, technologies, and quality. Internal maintenance, optimization, and sharing are in place. Carriers, equipment vendors, and partners are working together to build an end-to-end network capability and win-win ecosystem to provide users with the best 5G experience and services.\""
+ },
+ {
+ "title": "Maximizing the Value of Wireless Networks and Ushering in the Golden Decade of 5G",
+ "type": "Internet",
+ "imgUrl": "/common/images/news_image17.jpg",
+ "reads": "7574",
+ "likes": "1439",
+ "content": "The 5G industry is developing faster than the previous standards. Currently, there are more than 100 5G commercial networks around the world, and the price of entry-level 5G mobile phones has fallen to CNY1,000, which has led to the rapid growth of 5G users worldwide. Thanks to this, leading operators have enjoyed the data dividend brought by 5G. The multi-dimensional package design and 5G message and 5G new communication services are upgraded to increase the ARPU of 5G users to different degrees.\nTo promote the further development of 5G networks and encourage more users to choose and prefer 5G networks, operators need to build 5G top-quality networks for individual users to achieve full-scenario coverage in densely populated urban areas, suburban areas, and indoor areas, allowing mobile phone users to access 5G services anytime, anywhere. In addition, 5G connection experience is optimized to ensure consistent user experience."
+ },
+ {
+ "title": "Technology Helps Art, Leads a New Era",
+ "type": "Game",
+ "imgUrl": "/common/images/news_image18.jpg",
+ "reads": "6311",
+ "likes": "7114",
+ "content": "Zhang Wenlin spoke highly of the \"Dance Storm\". He believes that since the second season's premiere, the show has brought the contestants' exquisite dance moves, the wonderful host of Mr Ho Kung, the excellent comments of the judges' tutors, and the exquisite design of the staff to the audience, dedicate a beautiful visual feast! To help achieve fantastic visual effects, Hunan Radio and TV set up a joint team with Huawei to develop a spatio-temporal condensation system for Dance Storm 2. The system supports AI algorithms such as intelligent fast focusing, butterfly shooting, zoom-in, and multi-focus, with the help of the video 3.0+ platform of device-cloud synergy, the program team has made several industry-leading achievements, such as the three-dimensional storm moment with fantastic visual changes, free-view Dance Storm program with interactive control and rotation, and dance Storm with 360-degree panoramic view. VR programs."
+ },
+ {
+ "title": "Open Intelligent Twin Ecosystem Is the Key to All-Scenario Intelligence",
+ "type": "Health",
+ "imgUrl": "/common/images/news_image19.jpg",
+ "reads": "6341",
+ "likes": "7164",
+ "content": "Intelligent upgrade will build core competitiveness in various industries. Huawei works with partners to integrate 5G, cloud, AI, intelligent edge, and industry applications to form an integrated intelligent system and create industry-leading smart experience. In the transportation industry, the abolition of highway toll stations at the provincial boundary enables fast and insensitive traffic, greatly improving traffic efficiency and reducing logistics transportation costs. Intelligent cameras are deployed on highway portals to collect vehicle traffic data 24 hours a day and send the data to the cloud in real time over the high-speed network for real-time charging. In addition, AI models trained on the cloud can be pushed to the edge so that cameras can have capabilities such as license plate recognition and vehicle feature extraction, and the capabilities can be continuously evolved. For example, in extreme weather conditions such as rain and snow, one-click upgrade can be performed on the cloud."
+ }
+]
+
+
+
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_good.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_good.png
new file mode 100644
index 0000000000000000000000000000000000000000..e306e705fe96f10576fa393c3390ea63f26408dd
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_good.png differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_message.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_message.png
new file mode 100644
index 0000000000000000000000000000000000000000..b81007d64cbe5265df414a6dab58cd103cd5a521
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_message.png differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_share.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_share.png
new file mode 100644
index 0000000000000000000000000000000000000000..1fb1cae93ea21b0712abc939b828ea92ffcb07f4
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_share.png differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_star.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_star.png
new file mode 100644
index 0000000000000000000000000000000000000000..5ace4c20d2f949b567fc960d205c345273fadee2
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_star.png differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bfe2ae5849d6b022c2eab195f0fc0c04721db285
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..781936afc0354e0f22d1b77339968927c29ffb36
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f2862e308f284c5cc87d06c5316d5edec86028f3
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0425178705c4e56888d7df2b308efdfcd7ac8640
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b349d81e1dce2d2a553baaf26a5b7fde58d8beac
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e3d1ca269b529e890a3e154ac081e93487f5743b
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..54775977a85c165759a22b8c8e956ecc59603ff8
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..17780bfc6f7f014b1920fa5159cb1a4699a5de49
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a34dcd88e1507fd07d509fcffe024dfe7a59ab39
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ad79353b9bcfb2cd5b05ef6296f29e3ac826d3ca
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5e8c9267e9632b829492f6d93bfebfcb9c0dc114
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2322f158e6a108b8a4f2bbcb20204bd7974c12d9
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6da8be18ed043a9fc815689e7482e9fe04969f1a
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..78bfe6f367b9534e1236725b50a2b98934a76827
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bda3780f9779e2169cea6b3cd0aae77bc6e6cc95
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60ebfaa4bd05ca32c40b99f247a9d2998d85dd69
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bfc4fb58e7a5ca3062dc775721f9106d333adaec
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e58a289f7d136043766f33f168a87af367c370f3
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e7de107a86d8a741fa4112c3df79c60a1ac086e5
Binary files /dev/null and b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json b/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..d808fd090e5e46bf11894d14e4bcb17cffbe45fd
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,11 @@
+{
+ "strings": {
+ "hello": "shizhe",
+ "world": "Hello",
+ "page": "Second Page",
+ "next": "Next Page",
+ "back": "Back"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json b/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..e689085f9498b52dc05fe973a4c0e68d8539a7ef
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,11 @@
+{
+ "strings": {
+ "hello": "SHIZHE",
+ "world": "世界",
+ "page": "第二页",
+ "next": "下一页",
+ "back": "返回"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.css b/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.css
new file mode 100644
index 0000000000000000000000000000000000000000..a1467d665a06c8c681a547de0c3b7c860d2500fa
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.css
@@ -0,0 +1,109 @@
+.container {
+ padding: 20px;
+ margin-bottom: 160px;
+ flex-direction: column;
+}
+
+.text-title {
+ margin: 20px;
+ font-size: 50px;
+}
+
+.text-reads {
+ font-size: 32px;
+ text-color: #666666;
+ margin: 20px;
+}
+
+.image {
+ margin: 20px;
+}
+
+.text-content {
+ margin: 30px;
+ font-size: 36px;
+ text-color: #666666;
+}
+
+.bottom {
+ padding-left: 24px;
+ padding-right: 24px;
+ justify-content: center;
+ align-items: center;
+ border-top-width: 1px;
+ border-color: #cccccc;
+ background-color: #eeeeee;
+ height: 120px;
+ width: 100%;
+ background-color: white;
+ position: fixed;
+ bottom: 0px;
+}
+
+.textarea {
+ height: 80px;
+}
+
+.image-bottom {
+ object-fit: contain;
+ margin-left: 20px;
+ height: 80px;
+ width: 80px;
+}
+
+
+.select-device-dialog {
+ width: 90%;
+ height: 33%;
+}
+
+.select-device-wrapper {
+ margin: 5%;
+ width: 90%;
+ height: 90%;
+ flex-direction: column;
+}
+
+.select-device-title {
+ width: 100%;
+ height: 20%;
+ text-align: left;
+ font-size: 40px;
+}
+
+.select-device-list {
+ width: 100%;
+ height: 60%;
+ text-align: left;
+ font-size: 30px;
+}
+
+.select-device-item {
+ width: 100%;
+ height: 33%;
+}
+
+.select-device-item-left {
+ width: 90%;
+ height: 100%;
+ text-align: left;
+ font-size: 32px;
+}
+
+.select-device-item-right {
+ width: 10%;
+ height: 100%;
+}
+
+.choose-ok-or-not {
+ height: 20%;
+ width: 100%;
+}
+
+.select-device-btn {
+ text-align: center;
+ color: #0000ff;
+ font-size: 32px;
+ width: 100%;
+}
+
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.hml b/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.hml
new file mode 100644
index 0000000000000000000000000000000000000000..929f7d322b76ff499e80006966e02f3697d2f6eb
--- /dev/null
+++ b/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.hml
@@ -0,0 +1,38 @@
+