#创作者激励#【木棉花】:Web组件抽奖案例——学习笔记 原创 精华
前言
大家好呀!由于前段时间学业较忙,断更了一段时间。现在开启续更!本文是关于web组件抽奖案例(ArkTS)的学习笔记,漫漫学习路,留下笔记巩固之余又便于温故而知新~话不多说,以下是我这次的小分享❀❀
概述
本文分享的案例是Web组件如何加载本地H5小程序。所加载的页面是一个由HTML+CSS+JavaScript实现的完整小应用。至于加载云端的H5小程序,实现步骤类似,可移步至codelabs-Web组件抽奖案例细览。
效果图如下:
正文
关键知识概念
- Web组件 :提供具有网页显示能力的Web组件。访问在线网页时需添加网络权限:ohos.permission.INTERNET.
- runJavaScript:异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。
runJavaScript(options: { script: string, callback?: (result: string) => void })
- onConfirm:网页调用confirm()告警时触发此回调。此案例是用于回显抽奖结果。
onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)
一、创建空项目
选择HarmonyOS模板,项目SDK选择为API9,选择模型为Stage模型。
![]() |
---|
![]() |
如果要加载云端H5小程序的话,要记得在module.json5文件下添加网络权限:
二、编写本地H5页面
在src/main/resources/rawfile下分别创建:文件夹img用于存放抽奖展示的图片资源;文件index.html用于编写页面布局;css文件夹下再创建文件index.css,用于编写组件的样式;js文件夹下再创建文件index.js,用于编写抽奖的函数处理。
主要代码(抽奖功能实现):
三、调用web组件
在pages文件下创建文件MainPage和WebPage,其中WebPage用于调用web组件,在MainPage中有用到一个自定义属性,觉得蛮有用的,记录一下:
通过navigator组件带参跳转至WebPage界面,使用web组件前要先创建一个web控制器,则添加以下代码。
其中,webviewController要将IDE升级到最新版本才能用,是API9+的接口,上述WebController接口在最新版本时弃用了。
同时要注意在EntryAbility.ts文件下修改:,也要注意查看main_pages.json的配置
WebPage中主要代码部分:
下方的按钮,异步执行JavaScript脚本startDraw()
到此,然后就可以运行模拟器P50进行调试了!
结语
以上就是本次的小分享啦!❀❀
大佬好久不见,结合案例学习一下
Codelab又上新了不少东西
鸿蒙新加了不少组件,功能更强了
H5小程序还是非常适合练手的