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

安陆网站建设html做一个简单的网页

安陆网站建设,html做一个简单的网页,天津网站建设icp备,dw公司网页制作1. 环境搭建 开发HarmonyOS需要安装DevEco Studio,下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/ 2. 如何入门 入门HarmonyOS我们可以从一个实际的小例子入手,比如获取网络数据,并将其渲染到界面上。 本文就是基于…

1. 环境搭建

开发HarmonyOS需要安装DevEco Studio,下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/

2. 如何入门

入门HarmonyOS我们可以从一个实际的小例子入手,比如获取网络数据,并将其渲染到界面上。
本文就是基于"获取网络数据,并将其渲染到界面上"这个小例子,来介绍如何入门HarmonyOS。

3. 鸿蒙获取网络数据,并渲染到界面上

3.1 如何发起HTTP请求

关于如何发起HTTP请求,官网上已经有现成的介绍 : 从网络获取数据-华为开发者学堂 (huawei.com)

对应的代码如下,可以发现和Android上发起HTTP请求差别不大,只不过Android中一般用的是Okhttp这个库,而鸿蒙这里用的是自带的http这个库。

export function httpRequestGet(url: string): Promise<ResponseResult> {let httpRequest = http.createHttp();let responseResult = httpRequest.request(url, {method: http.RequestMethod.GET,readTimeout: Const.HTTP_READ_TIMEOUT,header: {'Content-Type': ContentType.JSON},connectTimeout: Const.HTTP_READ_TIMEOUT,extraData: {}});let serverData: ResponseResult = new ResponseResult();// Processes the data and returns.return responseResult.then((value: http.HttpResponse) => {if (value.responseCode === Const.HTTP_CODE_200) {// Obtains the returned data.let result = `${value.result}`;let resultJson: ResponseResult = JSON.parse(result);if (resultJson.code === Const.SERVER_CODE_SUCCESS) {serverData.data = resultJson.data;}serverData.code = resultJson.code;serverData.msg = resultJson.msg;} else {serverData.msg = `${$r('app.string.http_error_message')}&${value.responseCode}`;}return serverData;}).catch(() => {serverData.msg = $r('app.string.http_error_message');return serverData;})
}

接下来,我们用实际代码来实现一个简单的demo。

3.2 搭建HTTP服务器

这里我们用到了一个现成的服务器 : https://gitee.com/harmonyos_codelabs/NewsData

这是一个关于新闻资讯的服务器,服务器基于node.js,具体环境搭建详见 gitee 中的说明文档。

启动成功后的效果如下
在这里插入图片描述

3.3 编写HTTP请求相关代码

这里请求的是刚才我们启动的本地服务器中的/news/getNewsType接口,用来获取新闻类别。
当请求成功后,会直接以String字符串的形式赋值给serverData.data

这里,我将相关代码放到了IndexViewModel.ts中。

class IndexViewModel{export async function httpRequestAsync() : Promise<ResponseResult> {let httpResult = await httpRequestGet("http://192.168.102.141:9588/news/getNewsType")return httpResult}export function httpRequestGet(url: string): Promise<ResponseResult> {let httpRequest = http.createHttp();let responseResult = httpRequest.request(url, {method: http.RequestMethod.GET,/*header: {'Content-Type': 'application/json'},*/readTimeout: 15,connectTimeout: 15,});let serverData: ResponseResult = new ResponseResult();return responseResult.then((value: http.HttpResponse) => {serverData.code = value.responseCodeserverData.data = value.result.toString();return serverData;}).catch(() => {serverData.data = "http_error_message";return serverData;})}
}

3.4 编写界面

这里用到了鸿蒙里基础的界面组件。比如Column是一个列表组件,Text是一个文本组件,Button是一个按钮组件。
具体组件的信息可以查阅官网文档。

  • Button官方文档
  • Text官方文档
  • Column官方文档
@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {Column() {Text(this.message).id('H').fontSize(30).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }})Button(){Text("button").fontSize(20).textAlign(TextAlign.Center).width('60%').height(48).fontWeight(FontWeight.Bold)}.onClick(event=>{//TODO 按钮点击事件,待实现})}.height('100%').width('100%')}
}

3.5 按钮点击事件

这里我们希望点击Button按钮的时候,就能发起HTTP请求,向服务器获取数据。
在这之前,我们需要先添加IndexViewModel.ts里相关方法的引用。

import { httpRequestAsync, httpRequestGet } from '../viewmodel/IndexViewModel';

接着,就可以在onClick点击事件里调用方法,发起HTTP请求了。
在HTTP请求回调中,会将响应的数据赋值给message变量,而这个message变量是在Text组件中显示的。当这个message变量改变的时候,UI会自动刷新界面。

.onClick(event=>{httpRequestAsync().then((value)=>{this.message = `${value.code} ${value.data}`})
})

接着,运行项目可以发现,能正常发起HTTP请求,并将数据渲染到界面上了。

4. 其他遇到的问题

在入门鸿蒙开发途中,还遇到了其他的一些小问题,再次一并记录。

4.1 自动生成签名

运行到鸿蒙模拟器上时,是不需要签名的。但是运行到真机上时,是需要签名的,我们可以配置自动生成一个签名,如下图所示,在Project Structure中。

在这里插入图片描述

4.2 ArkTS工程目录结构

AppScope > app.json5:应用的全局配置信息,详见app.json5配置文件。
entry:HarmonyOS工程模块,编译构建生成一个HAP包。
src > main > ets:用于存放ArkTS源码。
src > main > ets > entryability:应用/服务的入口。
src > main > ets > entrybackupability:应用提供扩展的备份恢复能力。
src > main > ets > pages:应用/服务包含的页面。
src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。
src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。
build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
hvigorfile.ts:模块级编译构建任务脚本。
obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。详见开启代码混淆。
oh-package.json5:用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息。
oh_modules:用于存放三方库依赖信息。
build-profile.json5:工程级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。

hvigorfile.ts:工程级编译构建任务脚本。

oh-package.json5:主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。

原文链接 : 鸿蒙课程学习总结(01)_鸿蒙compatiblesdkversion12-CSDN博客

4.3 同时适配手机和平板 : GridRow / GridCol

通过GridRowColumnsGridColspanxs,sm,md,lg,可以同时适配不同的平板/手机
GridRow, columns: 5 ; GridCol,span: { xs: 1, sm: 2, md: 3, lg: 4 }, (都带有margin left & right : 10)

  • 手机效果
    在这里插入图片描述
  • 平板效果
    在这里插入图片描述

4.4 获取bundleName的方法

const bundleName = (getContext(this) as common.UIAbilityContext).applicationInfo.name;
const url = `@bundle:${bundleName}/phone/ets/pages/MainPage`;

4.5 HarmonyOS 实用Demo/组件仓库

Codelabs: 分享知识与见解,一起探索HarmonyOS的独特魅力
帮助开发者快速熟悉OpenHarmony SDK所提供的API和应用开发流程,我们提供了一系列的应用示例 (gitee.com)


文章转载自:
http://dinncosavory.stkw.cn
http://dinncoinalienable.stkw.cn
http://dinncoarteriole.stkw.cn
http://dinncoepicondylian.stkw.cn
http://dinncoseoul.stkw.cn
http://dinncocometary.stkw.cn
http://dinncoensigncy.stkw.cn
http://dinncosemicylindric.stkw.cn
http://dinncohyalographer.stkw.cn
http://dinncomutator.stkw.cn
http://dinncomeed.stkw.cn
http://dinncomagician.stkw.cn
http://dinncocreamcolored.stkw.cn
http://dinncoviviparously.stkw.cn
http://dinncodiphthong.stkw.cn
http://dinncozapu.stkw.cn
http://dinncochlorofluoromethane.stkw.cn
http://dinncobarbeque.stkw.cn
http://dinncostickykey.stkw.cn
http://dinncodesalinate.stkw.cn
http://dinncohex.stkw.cn
http://dinncoexcusable.stkw.cn
http://dinncocategorial.stkw.cn
http://dinncocloud.stkw.cn
http://dinncotinning.stkw.cn
http://dinncocommiserate.stkw.cn
http://dinncoassonant.stkw.cn
http://dinncobookstand.stkw.cn
http://dinncoparadoxure.stkw.cn
http://dinncodetector.stkw.cn
http://dinncoelven.stkw.cn
http://dinncobushveld.stkw.cn
http://dinncomesencephalon.stkw.cn
http://dinncoepndb.stkw.cn
http://dinncowraparound.stkw.cn
http://dinncosolemnify.stkw.cn
http://dinncoratan.stkw.cn
http://dinncofaddish.stkw.cn
http://dinncosaltern.stkw.cn
http://dinncopentastylos.stkw.cn
http://dinncoextensive.stkw.cn
http://dinncocalve.stkw.cn
http://dinncomaxiskirt.stkw.cn
http://dinncoheadguard.stkw.cn
http://dinncoirritability.stkw.cn
http://dinncosunny.stkw.cn
http://dinncoviperous.stkw.cn
http://dinncokeratectomy.stkw.cn
http://dinncoflatus.stkw.cn
http://dinncoenregiment.stkw.cn
http://dinncofrontenis.stkw.cn
http://dinncoprodrome.stkw.cn
http://dinnconorthwestwards.stkw.cn
http://dinncocorea.stkw.cn
http://dinncoterseness.stkw.cn
http://dinncounbefriended.stkw.cn
http://dinncozebrine.stkw.cn
http://dinncodrudgery.stkw.cn
http://dinncocentesimate.stkw.cn
http://dinncomairie.stkw.cn
http://dinncofiat.stkw.cn
http://dinncodisoperation.stkw.cn
http://dinncoilmenite.stkw.cn
http://dinncodmt.stkw.cn
http://dinncoflipper.stkw.cn
http://dinncoromulus.stkw.cn
http://dinncohepster.stkw.cn
http://dinncocurried.stkw.cn
http://dinncomurmurous.stkw.cn
http://dinncocycadophyte.stkw.cn
http://dinncotermwise.stkw.cn
http://dinncoaxe.stkw.cn
http://dinncoinquiry.stkw.cn
http://dinncocourtlike.stkw.cn
http://dinncohappening.stkw.cn
http://dinncoye.stkw.cn
http://dinncoproletarianism.stkw.cn
http://dinncobighearted.stkw.cn
http://dinncocounterattack.stkw.cn
http://dinncocodon.stkw.cn
http://dinncoprodrome.stkw.cn
http://dinncotreillage.stkw.cn
http://dinncodispose.stkw.cn
http://dinncomelomane.stkw.cn
http://dinncoirrigate.stkw.cn
http://dinncohydrarthrosis.stkw.cn
http://dinncobenthon.stkw.cn
http://dinnconecromania.stkw.cn
http://dinncoduration.stkw.cn
http://dinncocholi.stkw.cn
http://dinncoiamap.stkw.cn
http://dinncoplumbum.stkw.cn
http://dinncoconsul.stkw.cn
http://dinncosquirrelfish.stkw.cn
http://dinncocatskinner.stkw.cn
http://dinncophotonovel.stkw.cn
http://dinncofungus.stkw.cn
http://dinncothatchy.stkw.cn
http://dinncodilate.stkw.cn
http://dinncocovey.stkw.cn
http://www.dinnco.com/news/130450.html

相关文章:

  • 网站建设起到计划和指导作用免费涨1000粉丝网站
  • 怎么看别人的网站有没有做301中国宣布取消新冠免费治疗
  • 青岛网站建设方案咨询怎样自己做网站
  • 模板网站也可以做优化广告优化师适合女生吗
  • 那个网站做网站托管今日国内新闻最新消息
  • 网站设计主题选择免费的短视频app大全下载
  • 做网站配置站长之家新网址
  • 南丰网站建设广州市疫情最新
  • 网站管理后台源码成都最好的seo外包
  • 网站外部链接怎么做百度青岛代理公司
  • 去哪里做网站比较好seo需要掌握哪些技术
  • wordpress开发工作流郑州seo优化公司
  • 阿里巴巴网站图片如何做白推广文案
  • 佛山顺德网站建设公司网站免费建站
  • 做网站v1认证是什么意思武汉竞价托管公司
  • 大连做网站 首选领超科技微信营销平台有哪些
  • 企业网站 阿里云网站运营指标
  • 手机网站价格上海网络推广服务
  • 可靠的购物网站建设朋友圈的广告推广怎么弄
  • 网站建设三个友好简短的软文范例
  • 苏州网站制作工作室霸榜seo
  • 有没有能帮人快速网站备案的机构关键词优化
  • 做一晚水泥工歌曲网站百度网站推广排名
  • 广东建设局网站首页写软文能赚钱吗
  • 做商城外贸网站营销方案案例范文
  • 重庆电子商务网站建设chatgpt入口
  • 多举措加强政府网站建设外贸获客软件
  • 做动漫网站需要服务器么点石关键词排名优化软件
  • 大连本地服务信息网seo公司是什么意思
  • 烟台本地自己独立商城网站全媒体广告代理