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

前端效果网站asp.net购物网站模板

前端效果网站,asp.net购物网站模板,wordpress know how,珠海网站建设方案优化背景 随着CSDN 鸿蒙APP 业务功能的增加#xff0c;以及为了与iOS、Android 端统一页面跳转路由#xff0c;以及动态下发路由链接#xff0c;路由重定向等功能。鸿蒙动态路由方案的实现迫在眉睫。 实现方案 鸿蒙版本动态路由的实现原理#xff0c;类似于 iOS与Android的实…背景 随着CSDN 鸿蒙APP 业务功能的增加以及为了与iOS、Android 端统一页面跳转路由以及动态下发路由链接路由重定向等功能。鸿蒙动态路由方案的实现迫在眉睫。 实现方案 鸿蒙版本动态路由的实现原理类似于 iOS与Android的实现原理具体理论可以查看 iOS 动态路由实现 这篇博文这边不在赘述这边只阐述实现逻辑。 1、路由地址与页面绑定 为了让鸿蒙中的每个页面都有一个固定的URL地址我们这边借助了三方框架 HMRouter具体HMRouter的实现方案可以查看文档 HMRouter({ pageUrl: app://app.com/blog/detail }) Component export struct BlogDetailPage { }2、动态路由注册与跳转 我们实现了一个Router类该类来实现我们动态路由表存储以及跳转的所有逻辑。routers 中存放了所有已经注册的URL。 class Router {/*** 保存了所有已注册的 URL* 结构类似 {blog: {:blogId: {_:callback}}}*/private routers:Mapstring,CommonAllType}通过下面方法实现注册动态路由表routers /** 添加路由到路由表* */private addURL(urlStr:string):Mapstring,CommonAllType{let pathComponents this.pathComponentsFromURL(urlStr)let subRoutes this.routersfor (let pathComponent of pathComponents){if (!subRoutes.get(pathComponent)) {subRoutes.set(pathComponent,new Map())}subRoutes subRoutes.get(pathComponent) as Mapstring,CommonAllType}return subRoutes}例如注册如下路由 Router.registerURLPattern(https://blog.csdn.net/:us ,(params) {})注册到本地路由表routers中应该是如下所示 {https: {blog.csdn.net: {:us: {_: function ( {...} )}}} }所有注册的路由都是以这种方式存储在routers中跳转时就会从路由表中查询匹配到的路由来跳转。 当有路由跳转时调用以下方法 Router.openUrl(https://blog.csdn.net/weixin_36162680/article/details/124127748, {isLogin:true})跳转时匹配到路由有那么也会生成相应的路由参数如下 {un: weixin_36162680,id: 124127748 }3、动态路由重定向实现及远端路由表格式 路由重定向 对于移动端的路由重定向实际上就是将一个路由转换为另一个路由例如 https://blog.csdn.net/:us 转换为 app://app.com/blog/detail?usxxx 远端路由表格式 一条路由规则分为一个 Key 和对应的 ValueKey 为需要注册的路由匹配规则Value 中包含重定向的路由地址或者需要拦截的参数等。 这里面的Key 必须是与鸿蒙中页面所绑定的路由地址。 {app://app.csdn.net/blog/detail: {needLogin: true},https://blog.csdn.net/:un: {redirectUrl: csdnapp://app.csdn.net/blog/detail} }跳转时重定向逻辑 Router.registerURLPattern(https://blog.csdn.net/:us ,(params) {//判断是否需要登录if (!UserTool.isLogin() params.has(Router.routerNeedLogin)) {let needLogin params.get(Router.routerNeedLogin) as booleanif (needLogin) {Router.login()return}}//判断是否需要重定向.....})HMRouter 路由是否注册 在使用的时候还有情况需要判断页面是否绑定了HMRouter /** hm_router是否注册* */static isRegisterHMRouter(urlStr: string) : boolean {let mapJsonValue getContext().resourceManager.getRawFileContentSync(hm_router_map.json)let jsonStr: string strUtils.uint8ArrayToStr(mapJsonValue)let jsonObj JSON.parse(jsonStr) as objectlet routMapArray jsonObj[routerMap] as Arrayobjectif (!strUtils.isBlank(urlStr)) {try {let tempURL Url.URL.parseURL(urlStr)let tempUrlStr tempURL.protocol // tempURL.host tempURL.pathnamelet found falsefor (let value of routMapArray){let name value[name] as stringif (name tempUrlStr) {found truebreak}}return found}catch (err){}}return false}至此基本路由跳转方案均已经实现另外可以通过判断路由是否注册来提示用户。
http://www.hkea.cn/news/14498581/

相关文章:

  • 写作网站起点上海开发小程序
  • 网站排名优化公司常德市住房和城乡建设局网站
  • 高端自适应网站石家庄公司的网站设计
  • 北京房山网站建设产品更新培训wordpress生成文档插件
  • 自己建设网站要花多少钱网站建设规划总结
  • 天津建设工程注册中心网站wordpress 视频无广告
  • 电商网站设计公司有哪些公司网站建设需要收集什么信息
  • 个人网站备案网址导航专业网站制作公司咨询
  • 温州企业自助建站系统手机浏览wordpress
  • 上海网站建设特点wordpress页面判断
  • 婚恋网站建设方案2022年国际新闻
  • 如何做分销型网站广告设计图片 创意
  • 专门做儿童的店铺网站上饶做网站最好的公司
  • 越策网站建设湖南响应式官网建设哪里有
  • wordpress 显示指定分类文章列表百度地图排名怎么优化
  • 淮南网站建设公司reactjs 做的网站
  • 唯品会网站页面设计文章网站哪里建设好
  • 海口网站提升排名wordpress文章两端对齐
  • 电子商务网站的开发流程网站建设确认函
  • 服务器php网站打不开开天猫旗舰店网站建设
  • gofair做网站wordpress的文章tag标签
  • 铜山区建设局局网站网站的规划和建设
  • 怎么把个人做的网站上传到网上企业管理工具
  • 徐州模板建站定制网站wordpress钩子介绍
  • 西安建设厅网站ui设计是什么专业学科
  • 丹阳建设局官方网站wordpress 2018
  • 网站界面设计的流程山东港基建设集团网站
  • 杭州 网站设计制作wordpress 语录小程序
  • 摄影师常用的网站为什么做企业网站
  • 投资者网站建设动画制作器