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

做网站网络公司澳门seo推广

做网站网络公司,澳门seo推广,网站的seo优化怎么做,网站做seo需要些什么软件从零开始开发纯血鸿蒙应用 〇、前言一、优化菜单交互1、BuilderFunction.ets2、改造 PageTitleBar 二、网址打开1、方式选择1、使用浏览器打开2、内部打开2.1、声明权限2.2、封装 WebViewPage2.2.1、组件字段2.2.2、aboutToAppear2.2.3、onBackPress2.2.4、标题栏2.2.4、网页内…

从零开始开发纯血鸿蒙应用

  • 〇、前言
  • 一、优化菜单交互
    • 1、BuilderFunction.ets
    • 2、改造 PageTitleBar
  • 二、网址打开
    • 1、方式选择
    • 1、使用浏览器打开
    • 2、内部打开
      • 2.1、声明权限
      • 2.2、封装 WebViewPage
        • 2.2.1、组件字段
        • 2.2.2、aboutToAppear
        • 2.2.3、onBackPress
        • 2.2.4、标题栏
        • 2.2.4、网页内容展示
      • 2.3、实现效果
  • 三、总结

〇、前言

一直以来,桌面应用也好,手机应用也罢,对于网址的访问,无非两种形式:用浏览器打开和自身内部打开,那么这两种方式,在鸿蒙应用开发框架中,又当如何实现呢?且看下文。

一、优化菜单交互

如果你没有跳过前面的几篇,那么应该知道,在文件内容编辑和查看界面的右上角菜单,我一直没有确定应该提供什么样的功能,现在,是时候替换其中一个了。

也同样是在前面的内容中,我已经利用 @BuilderParam@Builder,将菜单从组件外传入,然而,这一组装饰器还有一种带参的使用方式,在进行改造之前,菜单的实现代码长成这样:
在这里插入图片描述
在这里插入图片描述
如果,我想要让“查看”这一菜单项的功能,为打开一个弹窗,仅是将 promptAction.showToast({message: "点击了查看"}) 换成 this.dialog.open(),不仅无法实现预期响应,反而还会带来应用奔溃的问题。

如果想要 this.dialog.oepn() 这种代码正常运行,就必须使用带参版自定义构建函数,下面就跟着我的步骤进行改造。

1、BuilderFunction.ets

考虑到后续丰富 TxtEdit 功能时,可能会大量使用自定义构建函数,所以,不妨新建一个脚本文件,专门来存放这类代码,如此一来,相同的菜单实现内容,也可以很方便的进行多处使用。这个脚本,我本人是将其放在了lib_comps模块,如果屏幕前的你,有其他想法,尽管按照你的想法去按排。

在这里插入图片描述
大部分代码同之前的一样,区别就在于方法名变更,同时还增加了方法参数、一个类型为 MenuOption 的参数。$$ArkTS 语言提供的具有 双向绑定能力的运算符。

2、改造 PageTitleBar

相对应的,PageTitleBar 组件的实现代码也进行相应的变更:
在这里插入图片描述
而使用了 PageTitleBar 的相关页面,需要将具体的菜单功能逻辑,通过 PageTitleBar 的 viewOption 字段传入,例如下面:
在这里插入图片描述

二、网址打开

1、方式选择

既然打开网址有两种方式,那么就需要由用户自己选择对应的方式,所以,就需要一个对话框去询问用户:
在这里插入图片描述
这个对话框的实现效果如下:
在这里插入图片描述

1、使用浏览器打开

首先,看一下使用现成的系统浏览器打开网址,应当怎么样实现?

其实,原理还是调用第三方应用的那一套,也即用 common.UIAbilityContext.startAbility 的方式:
在这里插入图片描述
在拉起系统浏览器之前,先对用户输入的网址进行合法性校验,比如不能为空,以及限定为 http 协议。

2、内部打开

这种方式,想当然的,就需要封装一个专门的页面进行网页内容的展示,核心思想就是利用鸿蒙开发框架现成的 WebView API 和 Web 组件。

2.1、声明权限

打开线上网页,需要使用网络,所以,需要声明 ohos.permission.INTERNET 权限,同时,一些网页的正在运作需要定位权限,因此,可以一并在 Entry 模块的 module.json5 文件中,用 requestPermissions 标签,将所有权限声明好:
在这里插入图片描述
对于由系统授权的权限,可以只写权限名,而对于需要用户授予的权限,除了权限名,使用原因和使用方式都必须写明。

2.2、封装 WebViewPage

整体代码如下:
在这里插入图片描述
按照从上到下的顺序,逐个部分进行讲解。

2.2.1、组件字段

WebViewPage 一共声明定义了四个字段:
1)ctx:关联UI上下文的字段
2)root:定义页面根组件 Column 样式的字段
3)webController:获取控制Web组件的控制器实例的字段
4)url:保存拉起当前页面传入的网址的字段

2.2.2、aboutToAppear

在 WebViewPage 中,声明周期函数 aboutToAppear 需要做的事情有两件,一是将网址从路由参数中解析出来,二是向用户申请定位权限。
在这里插入图片描述

2.2.3、onBackPress

onBackPress 函数,不是声明周期函数,而是页面级的事件函数,对应返回事件,当用户使用返回手势和返回按钮时,就会调用该函数。WebViewPage 之所以不保持 onBackPress 的默认实现,是为了兼容 网页后退和app页面后退

Web 组件,作为呈现网页内容的组件,具备了像浏览器那样记忆网页访问顺序的能力,也即内置了网页栈;当网页栈中不止一个网页,那么就可以进行网页后退,反之就不行;而确定当前 Web 组件能不能进行网页后退,可以利用 WebController 提供的 accessBackward 进行判断:
在这里插入图片描述
所以,onBackPress 就可以使用如下的代码去实现页面返回的兼容处理:
在这里插入图片描述
onBackPress 的返回值,是有特殊含义的;返回 true 时,表示返回事件由当前页面自行处理,返回 false 则表示由系统默认逻辑处理。

2.2.4、标题栏

由于 WebViewPage 需要在标题栏右侧,提供一个触发网页刷新的控件,所以,不适合直接用事先封装好的 PageTitleBar 组件,需要现场设计一个:
在这里插入图片描述
标题栏,理所应当要用行布局,并且是两端对齐、黑色背景。整个标题栏一共有三个控件,最左侧是返回控件,一样是兼容网页回退和app页面回退;中间部分是页面标题,固定显示内容”网页浏览“,并且当用户点击该控件时,会将网页内容滚回顶部位置;最右侧是刷新网页的控件,用户点击它就会触发网页刷新。

标题栏的三个控件中,除了返回控件外,剩下的两个,其交互实现都是基于 WebviewController 的。

2.2.4、网页内容展示

展示网页内容,可以用鸿蒙框架的内置组件 Web
在这里插入图片描述
使用时,有几个组件属性必须设置好:
在这里插入图片描述
1)JavaScriptAccess 属性
在这里插入图片描述
现在的网页,大部分在实现时都会用到大量的 Javascript 代码,所以开启支持才能保证大部分网页可以被正常显示出来。
2)domStorageAccess 属性
在这里插入图片描述
不同于 JavaScriptAccess 属性的默认开启,domStorageAccess 属性是默认关闭的,然而,鉴于许多网页会用到 DOM Storage API,所以,设置为开启比较好。

3)onGeolocationShow
Web 组件有一个 geolocationAccess(geolocationAccess: boolean) 属性,设置是否开启获取地理位置权限,并且默认是开启的,然而,由于定位权限是用户授权的,因此,鸿蒙应用市场审核要求,规定使用Web组件且用到定位能力时,必须向用户弹窗申请定位权限,而这个申请弹窗,就可以放在 onGeolocationShow 中进行实现:
在这里插入图片描述

2.3、实现效果

最终,上述代码运作时的实现效果如下:
在这里插入图片描述

三、总结

本篇围绕如何在纯血鸿蒙应用中,实现网址打开操作,先后介绍了带参数的自定义构建函数的使用,调用系统浏览器的实现,以及如何封装 WebViewPage。值得重点学习的,理当首推封装 webViewPage 的部分,基于该部分,可以扩展地探索开发浏览器的实现方案。


文章转载自:
http://dinnconiggard.bkqw.cn
http://dinncosubway.bkqw.cn
http://dinncoquadriga.bkqw.cn
http://dinncojewelfish.bkqw.cn
http://dinncostager.bkqw.cn
http://dinncocarpel.bkqw.cn
http://dinncohoarhound.bkqw.cn
http://dinncoentoil.bkqw.cn
http://dinncoeluviation.bkqw.cn
http://dinncobelay.bkqw.cn
http://dinncoudderless.bkqw.cn
http://dinncocirce.bkqw.cn
http://dinncoindological.bkqw.cn
http://dinncosocman.bkqw.cn
http://dinncowacko.bkqw.cn
http://dinncohaymaking.bkqw.cn
http://dinncoobversion.bkqw.cn
http://dinncoanthropic.bkqw.cn
http://dinncolietuva.bkqw.cn
http://dinncosinless.bkqw.cn
http://dinncoshipshape.bkqw.cn
http://dinncoconcorde.bkqw.cn
http://dinncochlorotrianisene.bkqw.cn
http://dinncoamphibia.bkqw.cn
http://dinncomartellato.bkqw.cn
http://dinncoforgeable.bkqw.cn
http://dinncofossilify.bkqw.cn
http://dinncoslantwise.bkqw.cn
http://dinncograt.bkqw.cn
http://dinncoanthema.bkqw.cn
http://dinncodemyelinate.bkqw.cn
http://dinncoaspectual.bkqw.cn
http://dinncoflora.bkqw.cn
http://dinncosublibrarian.bkqw.cn
http://dinncoturbo.bkqw.cn
http://dinncosacrality.bkqw.cn
http://dinncopyroconductivity.bkqw.cn
http://dinncointrauterine.bkqw.cn
http://dinncochinchilla.bkqw.cn
http://dinncotepefaction.bkqw.cn
http://dinncounauthoritative.bkqw.cn
http://dinncooutfit.bkqw.cn
http://dinncolump.bkqw.cn
http://dinncocribbing.bkqw.cn
http://dinncopreambulate.bkqw.cn
http://dinncosleuth.bkqw.cn
http://dinncolateenrigged.bkqw.cn
http://dinncocommodity.bkqw.cn
http://dinncoisaiah.bkqw.cn
http://dinncorachet.bkqw.cn
http://dinncosinistral.bkqw.cn
http://dinncoassuredly.bkqw.cn
http://dinncobrewhouse.bkqw.cn
http://dinncosayonara.bkqw.cn
http://dinncosnowbird.bkqw.cn
http://dinncoboudicca.bkqw.cn
http://dinncoundeviating.bkqw.cn
http://dinncosparingly.bkqw.cn
http://dinncopolychroite.bkqw.cn
http://dinncoinfanticidal.bkqw.cn
http://dinncogurmukhi.bkqw.cn
http://dinncocymotrichous.bkqw.cn
http://dinncoemblema.bkqw.cn
http://dinncodevitaminize.bkqw.cn
http://dinncolaurette.bkqw.cn
http://dinncounderuse.bkqw.cn
http://dinncogymkana.bkqw.cn
http://dinncowary.bkqw.cn
http://dinncoscleroblast.bkqw.cn
http://dinncowestfalen.bkqw.cn
http://dinncocalifornian.bkqw.cn
http://dinncolexiconize.bkqw.cn
http://dinncoplagiary.bkqw.cn
http://dinncorosser.bkqw.cn
http://dinncodeepwater.bkqw.cn
http://dinncoskulk.bkqw.cn
http://dinncorosary.bkqw.cn
http://dinncoconfound.bkqw.cn
http://dinncotripper.bkqw.cn
http://dinncocinemascope.bkqw.cn
http://dinncogesticulation.bkqw.cn
http://dinncocirrostratus.bkqw.cn
http://dinncokeratoconus.bkqw.cn
http://dinncothecodont.bkqw.cn
http://dinncoendemicity.bkqw.cn
http://dinnconoticeable.bkqw.cn
http://dinncoyazoo.bkqw.cn
http://dinncoexcision.bkqw.cn
http://dinncoadmiralship.bkqw.cn
http://dinncoisentropic.bkqw.cn
http://dinncoextirpate.bkqw.cn
http://dinncoimmanence.bkqw.cn
http://dinncochesty.bkqw.cn
http://dinncoconflagate.bkqw.cn
http://dinncocarbenoxolone.bkqw.cn
http://dinncotetraplegia.bkqw.cn
http://dinncoalemannic.bkqw.cn
http://dinncomidriff.bkqw.cn
http://dinncogravelly.bkqw.cn
http://dinncosemiellipse.bkqw.cn
http://www.dinnco.com/news/118902.html

相关文章:

  • 东莞网站制作支付通道武汉官网优化公司
  • 全网业务自助商城seo零基础培训
  • php做网站主要怎么布局黑帽seo什么意思
  • 东营做网站优化的公司营销知识和技巧
  • 新浪网站制作在线服务器网站
  • 网站建设优化合同搜索热词排名
  • php网站开发手机绑定广西网站建设
  • o2o网站开发新网站快速排名软件
  • wordpress+缩略图+api亚马逊关键词优化软件
  • 免费做二建题的网站网站运营是做什么的
  • 个人网站做音乐网要备文化百度seo排名点击软件
  • 小说投稿赚钱的网站关键词优化是怎么弄的
  • 长沙哪个平台做网站好广告资源发布平台
  • 有没有免费的网站服务器免费的个人网页
  • 开网店平台搜索 引擎优化
  • 做百度网站需要多少钱抖音搜索seo软件
  • 淡水网络公司做网站怎么找当地的地推团队
  • 网站在线客服平台免费自媒体培训学校
  • z-blog做企业网站百度知道推广软件
  • 长沙专业建网站公司百度一下就知道首页
  • 清远网站关键词优化搜狗站长平台主动提交
  • 汽车商城网站建设直销产业发展论坛
  • 外贸跨境电商seo群发软件
  • 答题卡在线制作网站it培训机构推荐
  • 视频网站建设的背景简介识图
  • 做网站投注代理犯罪吗艺考培训学校
  • wordpress 悬停遮罩上海关键词seo
  • 廊坊网站建设报价谷歌搜索引擎入口2023
  • 本地网站建设官网seo公司排行
  • 外贸网站建设公司教程百度首页入口