国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Web組件抽獎案例—學(xué)習(xí)筆記

系統(tǒng) OpenHarmony
本文分享的案例是Web組件如何加載本地H5小程序。所加載的頁面是一個由HTML+CSS+JavaScript實(shí)現(xiàn)的完整小應(yīng)用。

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

前言

大家好呀!由于前段時間學(xué)業(yè)較忙,斷更了一段時間。現(xiàn)在開啟續(xù)更!本文是關(guān)于web組件抽獎案例(ArkTS)的學(xué)習(xí)筆記,漫漫學(xué)習(xí)路,留下筆記鞏固之余又便于溫故而知新~話不多說,以下是我這次的小分享??

概述

本文分享的案例是Web組件如何加載本地H5小程序。所加載的頁面是一個由HTML+CSS+JavaScript實(shí)現(xiàn)的完整小應(yīng)用。至于加載云端的H5小程序,實(shí)現(xiàn)步驟類似,可移步至??codelabs-Web組件抽獎案例??細(xì)覽。

效果圖如下:

#創(chuàng)作者激勵#【木棉花】:Web組件抽獎案例——學(xué)習(xí)筆記-開源基礎(chǔ)軟件社區(qū)

正文

關(guān)鍵知識概念

  • ??Web組件?? :提供具有網(wǎng)頁顯示能力的Web組件。訪問在線網(wǎng)頁時需添加網(wǎng)絡(luò)權(quán)限:ohos.permission.INTERNET.
  • runJavaScript:異步執(zhí)行JavaScript腳本,并通過回調(diào)方式返回腳本執(zhí)行的結(jié)果。runJavaScript需要在loadUrl完成后,比如onPageEnd中調(diào)用。
    runJavaScript(options: { script: string, callback?: (result: string) => void })
  • onConfirm:網(wǎng)頁調(diào)用confirm()告警時觸發(fā)此回調(diào)。此案例是用于回顯抽獎結(jié)果。
    onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)

一、創(chuàng)建空項(xiàng)目

選擇HarmonyOS模板,項(xiàng)目SDK選擇為API9,選擇模型為Stage模型。


#創(chuàng)作者激勵#【木棉花】:Web組件抽獎案例——學(xué)習(xí)筆記-開源基礎(chǔ)軟件社區(qū)



#創(chuàng)作者激勵#【木棉花】:Web組件抽獎案例——學(xué)習(xí)筆記-開源基礎(chǔ)軟件社區(qū)


如果要加載云端H5小程序的話,要記得在module.json5文件下添加網(wǎng)絡(luò)權(quán)限:

"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
],

二、編寫本地H5頁面

src/main/resources/rawfile下分別創(chuàng)建:文件夾img用于存放抽獎?wù)故镜膱D片資源;文件index.html用于編寫頁面布局;css文件夾下再創(chuàng)建文件index.css,用于編寫組件的樣式;js文件夾下再創(chuàng)建文件index.js,用于編寫抽獎的函數(shù)處理。

#創(chuàng)作者激勵#【木棉花】:Web組件抽獎案例——學(xué)習(xí)筆記-開源基礎(chǔ)軟件社區(qū)


主要代碼(抽獎功能實(shí)現(xiàn)):

// 旋轉(zhuǎn)函數(shù)
function roll() {
// 速度衰減
speed -= 50;
if (speed <= 10) {
speed = 10;
}

// 每次調(diào)用都去掉全部active類名,即去掉選中單元格的效果
for (let j = 0; j < allPrizesLi.length; j++) {
allPrizesLi[j].classList.remove('active');
}
prizesPosition++;

// 計(jì)算轉(zhuǎn)圈次數(shù),每至尾元素則圈數(shù)+1
if (prizesPosition >= allPrizesLi.length - 1) {
prizesPosition = 0;
count++;
}

//為當(dāng)前選中的單元格添加active類,以添加選中的效果樣式
allPrizesLi[prizesPosition].classList.add('active');
let initSpeed = 500;
let timer; //定義定時器
let totalCount = 5; // 至少轉(zhuǎn)動的總?cè)?shù)

// 滿足轉(zhuǎn)圈數(shù)和指定位置就停止
if (count >= totalCount && (prizesPosition + 1) == index) {
clearTimeout(timer);
isClick = true;
speed = initSpeed;
timer = setTimeout(openDialog, 1000); // 等待1s打開彈窗
} else {
timer = setTimeout(roll, speed); // 不滿足條件時調(diào)用定時器
// 最后一圈減速
if (count >= totalCount - 1 || speed <= 50) {
speed += 100;
}
}
}
// 抽獎開始函數(shù)
function startDraw() {
// 防止抽獎多次觸發(fā)
if (isClick) {
count = 0;

// 隨機(jī)產(chǎn)生中獎位置
index = Math.floor(Math.random() * prizesArr.length + 1);
roll();
isClick = false;
}
}

function openDialog() {
confirm(prizesArr[prizesPosition]);
}

三、調(diào)用web組件

在pages文件下創(chuàng)建文件MainPage和WebPage,其中WebPage用于調(diào)用web組件,在MainPage中有用到一個自定義屬性,覺得蠻有用的,記錄一下:

@Extend(Button) function fancy (top: string) {
.fontSize(16)
.fontColor($r('app.color.start_window_background'))
.width('86.7%')
.height('5.1%')
.margin({ top: top })
.backgroundColor($r('app.color.blue'))
.borderRadius('20')
}
Navigator({ target:'pages/WebPage', type: NavigationType.Push }) {
Button($r('app.string.loadLocalH5'))
.fancy('10%')
}
.params({ path:$rawfile('index.html'), tips: $r('app.string.local') })
}

通過navigator組件帶參跳轉(zhuǎn)至WebPage界面,使用web組件前要先創(chuàng)建一個web控制器,則添加以下代碼。
其中,webviewController要將IDE升級到最新版本才能用,是API9+的接口,上述WebController接口在最新版本時棄用了。

webController: web_webview.WebviewController = new web_webview.WebviewController();
@State params: object = router.getParams();

#創(chuàng)作者激勵#【木棉花】:Web組件抽獎案例——學(xué)習(xí)筆記-開源基礎(chǔ)軟件社區(qū)


同時要注意在EntryAbility.ts文件下修改:,也要注意查看main_pages.json的配置。

#創(chuàng)作者激勵#【木棉花】:Web組件抽獎案例——學(xué)習(xí)筆記-開源基礎(chǔ)軟件社區(qū)

WebPage中主要代碼部分:

// web組件加載本地H5
Web({ src: this.params['path'], controller: this.webController })
.zoomAccess(false)
.width('93.3%')
.aspectRatio(1)
.margin({ left: '3.3%', right: '3.3%', top:'7.1%'})
.onConfirm((event) => {
AlertDialog.show({
message: '恭喜您抽中' + `${event.message}`,
confirm: {
value: $r('app.string.web_alert_dialog_button_value'),
action: () => {
event.result.handleConfirm();
}
},
cancel: () => {
event.result.handleCancel();
}
});
return true;
})

下方的按鈕,異步執(zhí)行JavaScript腳本startDraw()。

Button($r('app.string.btnValue'))
.fontSize(16)
.fontColor($r('app.color.start_window_background'))
.margin({ top: '10%' })
.width('86.7%')
.height('5.1%')
.backgroundColor($r('app.color.blue'))
.borderRadius('20')
.onClick(() => {
this.webController.runJavaScript('startDraw()');
})

到此,然后就可以運(yùn)行模擬器P50進(jìn)行調(diào)試了!

文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載:

??https://ost.51cto.com/resource/2553??

??https://ost.51cto.com/resource/2556??

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2011-08-10 14:00:22

XcodeUIWebView視頻

2015-09-09 09:39:59

網(wǎng)絡(luò)Web

2011-09-05 16:47:49

jQuery Mobi

2009-08-31 15:27:33

C# TreeView

2010-07-06 11:07:11

UML組件圖

2010-07-27 10:39:25

Flex組件

2011-09-07 17:19:16

Web widget

2011-08-16 14:59:31

IOS開發(fā)ViewDidUnloiOS 5

2011-08-31 15:59:10

LUAWeb 開發(fā)

2011-08-19 11:10:31

iPhone應(yīng)用

2010-07-30 13:52:17

Flex組件

2022-02-16 15:32:58

FlexUI框架容器組件

2010-08-05 10:29:11

Flex效果

2022-02-17 20:07:45

Flex鴻蒙Flex組件

2022-01-26 15:23:03

ArkUI開發(fā)鴻蒙

2013-09-10 17:41:56

移動網(wǎng)站性能優(yōu)化移動web

2013-05-22 15:43:39

谷歌web組件web開發(fā)

2009-10-27 17:59:16

VB.NET刪除文件夾

2014-05-26 16:29:12

Shadow DomWeb Compone

2009-11-09 09:55:24

WCF學(xué)習(xí)筆記
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美一区二区三区成人久久片| 日韩精品福利一区二区三区| 91香蕉亚洲精品| 在线麻豆国产传媒1国产免费| 欧美黄色成人| 中文字幕一区二区三区四区不卡| 亚洲国产成人精品久久| 亚洲精品久久久久久一区二区| 麻豆蜜桃在线| 国产三级精品在线| 久热这里只精品99re8久| 欧美日韩在线看片| 国产99久久久精品| 国产手机精品在线| 欧美bbbbb| 国产精品自产拍在线观看| 成人综合久久| 国产专区一区二区| 不卡精品视频| 中文字幕久热精品视频在线| 日韩在线观看不卡| www.久久久久| 爱爱精品视频| 欧美亚洲一级片| 成人精品天堂一区二区三区| 国产主播在线一区| 你懂的网址国产 欧美| 国产美女精品在线观看| 美女网站久久| 在线播放国产精品| 午夜免费久久看| 91蜜桃传媒精品久久久一区二区| 国产无限制自拍| 在线不卡a资源高清| 色综合小说天天综合网| 国产精品女同一区二区三区| 三上悠亚在线一区二区| 成人中文字幕合集| 麻豆一区区三区四区产品精品蜜桃| 国产精品你懂得| 卡通欧美亚洲| 精品国产人成亚洲区| 日本888xxxx| av毛片久久久久**hd| 好吊的妞视频这里都有| 精品国产一区二区三区久久久蜜月| 16—17女人毛片毛片| 国产一区二区三区四区在线观看| 国产乱码精品一区二区三区中文 | 黑人极品videos精品欧美裸| 影音欧美亚洲| 国产精品小仙女| 欧美亚洲一区三区| av成人 com a| www日韩中文字幕在线看| av综合网页| 国产91aaa| 国产一区二区三区四| 在线播放91灌醉迷j高跟美女 | 欧美日韩免费看| av中文字幕在线观看第一页 | 国产丝袜精品视频| 国产精品3区| 国产精品第七十二页| av2020不卡| 国产69精品99久久久久久宅男| 欧美残忍xxxx极端| 男人和女人做事情在线视频网站免费观看 | 国产精品一区二区在线播放| 黄色一级片黄色| 亚洲精品网站在线观看| 日韩暖暖在线视频| japanese色国产在线看视频| 亚洲大胆人体视频| baoyu777.永久免费视频| 国产精品丝袜91| 亚洲美女电影在线| 日韩av网址在线观看| 一区二区三区欧洲区| 久久精品中文字幕一区二区三区| 亚洲综合色丁香婷婷六月图片| 亚洲麻豆精品| 精品成人一区二区三区| 男女视频在线| 91麻豆精品国产综合久久久久久| 麻豆免费在线| 日韩亚洲欧美成人| 老司机亚洲精品一区二区| 国产精品色悠悠| 亚洲欧美日韩精品一区二区| 成人国产视频在线| 性做久久久久久久久| 91社区在线观看播放| 久久人91精品久久久久久不卡| 国产亚洲欧美日韩在线观看一区二区 | 中国色在线日|韩| 欧美一级免费视频| 国产麻豆精品95视频| 黄色av网站在线播放| 国产精品欧美一区二区| 懂色av一区二区夜夜嗨| 爽爽视频在线观看| 欧美国产日韩一区| 欧美精品激情| 欧美日韩亚洲自拍| 亚洲欧美日韩精品久久亚洲区| 欧美色图五月天| 欧美日本韩国一区二区三区| 久久久另类综合| 日韩免费高清视频网站| 9色porny| 少妇激情综合网| 日韩av一二三| 丝袜+亚洲+另类+欧美+变态| 亚洲一区二区免费| ...xxx性欧美| 日韩精品一区二区三区免费视频| 亚洲精品9999| 色吧影院999| 中文一区二区完整视频在线观看| 精品成av人一区二区三区| 91美女在线| 久久福利精品| 成人欧美一区| 老司机精品福利在线观看| 亚洲欧美另类图片小说| 亚洲www啪成人一区二区| 一级二级三级欧美| 999日本视频| 精品人妻一区二区三区四区在线| 色老头一区二区三区| 成人激情黄色小说| 久久影视精品| 国产三级三级看三级| 99影视tv| 在线性视频日韩欧美| 欧美综合在线视频| 成人国产电影网| 99久久影视| 俺来也官网欧美久久精品| 黄色www网站| 欧美日韩一区二区三区在线观看免 | 午夜激情综合网| 日韩中文字幕不卡| 国产高清亚洲| 无套内精的网站| 成人高清视频观看www| 日韩欧美成人一区二区| 欧美激情在线一区二区| 在线精品亚洲| 欧美日本成人| 成人影院中文字幕| av片哪里在线观看| 第四色亚洲色图| 一个人免费视频www在线观看| 日韩视频中午一区| 国产99久久久精品| 久久资源在线| 国模精品视频| 欧美xxx.com| 日韩欧美精品| 色偷偷av一区二区三区| 亚洲成a人v欧美综合天堂下载| 久久亚洲专区| 午夜精品偷拍| 蜜臀va亚洲va欧美va天堂| 亚洲女人的天堂| 日韩欧美在线看| 欧美理论电影大全| 91在线看黄| 国产又大又长又粗又黄| 久久69精品久久久久久久电影好 | 极品美女扒开粉嫩小泬| 国内偷自视频区视频综合| 色悠悠亚洲一区二区| 久热精品在线| 久久国产精品美女| 你懂的好爽在线观看| mm131午夜| 国产伦精品一区二区三区精品视频| 日韩欧美综合在线| 91色乱码一区二区三区| 亚洲五月综合| 88xx成人网| 精品999视频| 日本丰满大乳奶| 欧美性视频精品| 欧美成人vr18sexvr| 亚洲国产成人在线| 裸体一区二区| 亚洲免费精品视频| 欧美精品制服第一页| 欧美日韩综合色| 久久婷婷综合激情| 一本色道久久精品| 国产精品一区免费在线| 日韩在线观看www| www99热| 自拍偷拍一区二区三区| 国产在线视频不卡|