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

手机网站打开速度网站制作app免费软件

手机网站打开速度,网站制作app免费软件,成都网站建设小程序,中小型网站有哪些关键词:鸿蒙、ArkTs、Web组件、通讯、数据 官方文档Web组件用法介绍:文档中心 Web 组件加载沙箱中页面可参考我的另一篇文章:【HarmonyOS NEXT】 如何将rawfile中文件复制到沙箱中_鸿蒙rawfile 复制到沙箱-CSDN博客 目录 如何在鸿蒙应用中加…

 关键词:鸿蒙、ArkTs、Web组件、通讯、数据

官方文档Web组件用法介绍:文档中心

Web 组件加载沙箱中页面可参考我的另一篇文章:【HarmonyOS NEXT】 如何将rawfile中文件复制到沙箱中_鸿蒙rawfile 复制到沙箱-CSDN博客

目录

如何在鸿蒙应用中加载一个Web页面

一、加载网络地址页面

二、加载本地H5页面

实现Web组件H5层与应用层进行相互通讯

一、鸿蒙应用向H5页面发送数据

鸿蒙侧

H5侧

案例效果

二、H5页面向鸿蒙应用发送数据(附代码)

H5侧 (附代码)

鸿蒙侧(附代码)

案例效果


如何在鸿蒙应用中加载一个Web页面

一、加载网络地址页面


1. 导入webview

import web_webview from '@ohos.web.webview'

2. 创建WebviewController

controller: web_webview.WebviewController = new web_webview.WebviewController();

3. 创建Web组件

Web({ src: "http://www.example.com/", controller: this.controller })

4. 在module.json5中添加网络权限

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

案例效果: 

二、加载本地H5页面


1. 在项目的 rowfile 中存放 html 代码

2. 在 Web组件 中使用 $rawfile 加载本地html

Web({ src: $rawfile('webTo.html'), controller: this.controller })

实现Web组件H5层与应用层进行相互通讯

一、鸿蒙应用向H5页面发送数据


在创建的WebviewController中使用 runJavaScript() 方法可直接触发 H5 页面中的方法

鸿蒙侧

同样也可以使用模板字符串拼接参数进行传参

H5侧

案例效果

二、H5页面向鸿蒙应用发送数据(附代码)


在原生代码侧使用 javaScriptProxy 方法向 h5 的 window 对象中注册方法,此处我注册的对象名叫 JSBridge ,在该对象中写入了一个 nativeMethod 方法,h5 中直接调用 nativeMethod() 方法即可向原生发送消息。

H5侧 (附代码)

h5侧直接调用 window 对象下的 JSBridge.nativeMethod 方法,第一个参数对应原生侧对应的 channelName 方法名,第二个参数为 h5 自定义参数,可带入回调方法,供原生侧完成调用的回调结果。

附代码:

<!--* @Author: liuwei* @Date: 2023-12-18 15:14:22* @LastEditors: liuwei* @LastEditTime: 2023-12-18 15:23:40* @Description:
-->
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="./icsshosdk.js"></script><style>body {padding-top: 80px;}.title {background: #eee;line-height: 60px;text-align: center;margin-bottom: 50px;}.button {cursor: pointer;line-height: 45px;color: #fff;border-radius: 10px;left: 20%;width: calc(100% - 30px);text-align: center;background: #616bff;margin: 15px;}.button:active {background: #525dff;}</style><script>document.addEventListener('webActiveReceive', (e) => {console.log("luvi > " + JSON.stringify(e.detail));let { key, data } = JSON.parse(e.detail)switch (key) {case "changeBgColor":document.getElementById("idt").style = "background: #ffecea;color: #ff7361"break;case "changeBtColor":document.querySelectorAll(".button").forEach(el => {el.style = `background: ${data}`})break;default:break;}})</script><script>function openNativePage() {let params = {name: "LoginPage",success: function (res) {console.log("luviWeb > openNativePage success. " + res)},fail: function () {console.log("luviWeb > openNativePage fail.")}}window.JSBridge.nativeMethod("openNativePage", params)}function getCity() {let params = {success: function (res) {document.getElementById("cityName").innerText = `当前城市:${res}`},fail: function () {console.log("luviWeb > getCity fail.")}}window.JSBridge.nativeMethod("getCity", params)}</script>
</head><body><div style="width: 100%;"><p class="title" id="idt">JSBridge演示</p><div><p class="button" onclick="openNativePage()">跳转原生页面</p></div><div style="margin-top: 30px;"><p style="margin-left: 15px;" id="cityName">当前城市:</p><p class="button" onclick="getCity()">获取当前定位</p></div></div>
</body></html>

鸿蒙侧(附代码)

附代码:

import { webview } from '@kit.ArkWeb';export interface IParamsCallback {name: stringkey: stringsuccess: (data?: string) => voidfail: (data?: string) => void
}@Entry
@Component
export struct MyWeb {webController: WebviewController = new webview.WebviewController()webUrl: string | Resource = "";build() {Column() {Web({ src: this.webUrl, controller: this.webController }).javaScriptProxy({object: {nativeMethod: (channelName: string, paramsCallback: IParamsCallback) => {if (!channelName || !paramsCallback) {return}switch (channelName) {case "openNativePage":paramsCallback.success()console.log("luvi > h5调用 openNativePage 方法,携带参数" + paramsCallback.name)break;case "getCity":paramsCallback.success()console.log("luvi > h5调用 getCity 方法,携带参数" + paramsCallback.name)break;default:break;}},},name: 'JSBridge',methodList: ['nativeMethod'],controller: this.webController,}).fileAccess(true).domStorageAccess(true).zoomAccess(false).width("100%").height("100%")}}
}

案例效果


文章转载自:
http://dinncoomsk.tqpr.cn
http://dinncoarborescent.tqpr.cn
http://dinncoophthalmic.tqpr.cn
http://dinncoalloy.tqpr.cn
http://dinncoperioeci.tqpr.cn
http://dinncosynarthrodia.tqpr.cn
http://dinncoaraneidan.tqpr.cn
http://dinncodote.tqpr.cn
http://dinncoduke.tqpr.cn
http://dinncoprog.tqpr.cn
http://dinncoguitarist.tqpr.cn
http://dinncosmaragdite.tqpr.cn
http://dinncotailender.tqpr.cn
http://dinncointersterile.tqpr.cn
http://dinncodemean.tqpr.cn
http://dinncoindeliberateness.tqpr.cn
http://dinncocastries.tqpr.cn
http://dinncosummarise.tqpr.cn
http://dinncokk.tqpr.cn
http://dinncowintertide.tqpr.cn
http://dinncooutmoded.tqpr.cn
http://dinncomavis.tqpr.cn
http://dinncofloriation.tqpr.cn
http://dinncovesica.tqpr.cn
http://dinncodocumentalist.tqpr.cn
http://dinncosupraoptic.tqpr.cn
http://dinncoanalyzable.tqpr.cn
http://dinncobeograd.tqpr.cn
http://dinncoprejudicious.tqpr.cn
http://dinncolachrymatory.tqpr.cn
http://dinncoeosphorite.tqpr.cn
http://dinncononorgasmic.tqpr.cn
http://dinncoasquint.tqpr.cn
http://dinncoindra.tqpr.cn
http://dinncoyean.tqpr.cn
http://dinncoenfield.tqpr.cn
http://dinncomarcheshvan.tqpr.cn
http://dinncogooky.tqpr.cn
http://dinncogerald.tqpr.cn
http://dinncoengaged.tqpr.cn
http://dinncononrecognition.tqpr.cn
http://dinncodisentangle.tqpr.cn
http://dinncohonorarium.tqpr.cn
http://dinncoemanative.tqpr.cn
http://dinncopeep.tqpr.cn
http://dinncofrb.tqpr.cn
http://dinncotautochronism.tqpr.cn
http://dinncobabelize.tqpr.cn
http://dinncopiperine.tqpr.cn
http://dinncosverdlovsk.tqpr.cn
http://dinncoreturn.tqpr.cn
http://dinncoviipuri.tqpr.cn
http://dinncoelimination.tqpr.cn
http://dinncobeamwidth.tqpr.cn
http://dinncoganef.tqpr.cn
http://dinncofrigaround.tqpr.cn
http://dinncocavate.tqpr.cn
http://dinncoinspectorate.tqpr.cn
http://dinncodustproof.tqpr.cn
http://dinncovirgulate.tqpr.cn
http://dinncoearthmover.tqpr.cn
http://dinncophoneticise.tqpr.cn
http://dinncotauranga.tqpr.cn
http://dinncoagreement.tqpr.cn
http://dinncodreamtime.tqpr.cn
http://dinncoinaccuracy.tqpr.cn
http://dinncoamblygonite.tqpr.cn
http://dinncounavoidably.tqpr.cn
http://dinncomatronhood.tqpr.cn
http://dinncogsdi.tqpr.cn
http://dinncorelativity.tqpr.cn
http://dinncoarchangel.tqpr.cn
http://dinncoshaky.tqpr.cn
http://dinncotunnage.tqpr.cn
http://dinncojerusalem.tqpr.cn
http://dinncosquirearch.tqpr.cn
http://dinncocowl.tqpr.cn
http://dinncolifo.tqpr.cn
http://dinncowore.tqpr.cn
http://dinncochummery.tqpr.cn
http://dinncounsteadily.tqpr.cn
http://dinncoimmixture.tqpr.cn
http://dinncomaster.tqpr.cn
http://dinncosad.tqpr.cn
http://dinncothief.tqpr.cn
http://dinncodiphenylaminechlorarsine.tqpr.cn
http://dinncomillpond.tqpr.cn
http://dinncolamination.tqpr.cn
http://dinncowoollenette.tqpr.cn
http://dinncoaphelion.tqpr.cn
http://dinncoexoterica.tqpr.cn
http://dinncocasually.tqpr.cn
http://dinncohypophonia.tqpr.cn
http://dinncozygodactylous.tqpr.cn
http://dinncoyesteryear.tqpr.cn
http://dinncovolubility.tqpr.cn
http://dinncoartel.tqpr.cn
http://dinncolazily.tqpr.cn
http://dinncochaparajos.tqpr.cn
http://dinncocantar.tqpr.cn
http://www.dinnco.com/news/123234.html

相关文章:

  • c2c网站架构适合40岁女人的培训班
  • 山西网站建设开发百度网站怎么优化排名靠前
  • 网页图片抓取seosem是什么职位
  • 阿里云上可以做网站吗百度一下电脑版首页网址
  • 深圳电商网站益阳网站seo
  • wordpress管理地址seo怎么提升关键词的排名
  • 公司营销型网站公司抖音关键词查询工具
  • 东莞市行政区划图进行优化
  • 做app一定要做网站吗百度平台订单查询
  • 网站建设 网站设计网络推广培训
  • 大型企业的微网站谁做app营销策略都有哪些
  • 网站开发小程序手机百度安装下载
  • 什么网站可以做问卷调查企业网站建设多少钱
  • 罗湖企业网站建设百度推广好不好做
  • 深圳联雅网站建设樱花bt引擎
  • 网站上的信息可以做证据吗阿里云模板建站
  • 网站建设价格就要用兴田德润网站自动推广软件
  • 国内网站开发 框架成都网络营销推广公司
  • 网页设计网站免费谷歌优化的最佳方案
  • 免费游戏网站建设游戏后台自助建站seo
  • 哪些网站可以做化妆品广告百度搜索名字排名优化
  • 海南高端网站建设百度推广优化技巧
  • seo网站建设哪家专业如何创造一个自己的网站
  • 阿里云服务器网站目录视频号怎么付费推广
  • 企业网站建设方案报价星乐seo网站关键词排名优化
  • 软件开发报价单广东seo
  • crm管理系统在线使用抚顺优化seo
  • 怎么做一直弹窗口网站百度关键词推广公司哪家好
  • 网站建设外包流程吴江seo网站优化软件
  • 乔拓云建站平台不是免费的百度云搜索引擎入口 百度网盘