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

设计师网站推荐成都seo学徒

设计师网站推荐,成都seo学徒,建设网站硬件需要,金坛网站优化背景 近期有个微信小程序需要用到web-view嵌套H5的场景,该应用场景需要小程序中频繁传递数据到H5进行渲染,且需要保证页面不刷新。 由于微信小程序与H5之间的通信限制比较大,显然无法满足于我的业务场景 探索 由于微信小程序与webview的环境是…

背景

        近期有个微信小程序需要用到web-view嵌套H5的场景,该应用场景需要小程序中频繁传递数据到H5进行渲染,且需要保证页面不刷新。

        由于微信小程序与H5之间的通信限制比较大,显然无法满足于我的业务场景

探索

        由于微信小程序与webview的环境是完全隔离的,且没有突破的地方,只能将关键点放在已开放的方式上来;中间有利用公共存储空间cookie、SessionStorageLocalStorage,但是很遗憾,无法突破,后面也采用websocket利用服务器来进行双向交互,但是由于网络的不稳定性,导致数据可能会有一定的延迟。

思路

        既然小程序只能通过改变url链接来向H5传递参数,那么我就动态改变url来传递即可,但是还需要解决的问题是,一旦改变url页面会重新加载,这个是不能接受的。

        路由的hash模式正好可以做到这一点,那么我们通过动态改变urlhash值,H5页面监听hash值的变化就能完美解决该问题了,话不多说,直接开干。

实战

小程序

web-view代码

<web-view src="{{url}}{{hashStr}}"></web-view>

 小程序js代码,代码通过setInterval模拟实时传递不同参数到H5

Component({data: {url: `http://127.0.0.1:8080/home?type=wx`,hashStr: '',},methods: {onLoad: function () {const _this = this;           setInterval(() => {//此处模拟动态改变url的hash值给h5传值const postData={name: 'zhangsan',time: +new Date()}_this.setData({hashStr:`#time=${JSON.stringify(postData)}`})}, 2000);},}
});

注意:hashStr的值必须以#开始,浏览器才会识别为hash,否则无效

H5应用

在js中添加一个hashchange监听window.location.hash的变化即可


window.onhashchange = function() {console.log('The hash has changed!');const newHash = window.location.hash;console.log('New hash:', newHash);
};

以上方式即可完美解决我的应用场景


以为结束了,其实还没有,上面的方式的确可行,但是我是vue项目呀,其中还用到了vue-router组件,通过上述直接监听页面还是会刷新

 由于使用了vue-router插件,那么hash的变化,vue-router会默认通过hash来进行导航,也会加载刷新页面,所以我们还需要设置一个路由守卫,用来判断如果path没有变化,只是hash改变,则不进行导航具体配置如下:

import {createRouter, createWebHashHistory} from "vue-router";const routes= [ {path: '/home',name: 'home',component: () => import('../components/Home.vue')},
]
const router = createRouter({history: createWebHashHistory(),routes
});router.beforeEach((to, from, next) => {if (to.path===from.path) {     next(false); // 阻止导航行为} else {next(); // 正常导航}
});export default router;

注意点:

1、微信小程序会对url进行decodeURIComponent编码,故在解析的的时候,注意使用encodeURIComponent解码

2、如果动态改变url的hash频率过快,由于vue-router在内部调用了history.replaceState(),如果太频繁会触发浏览器的安全策略抛出一个SecurityError错误,这个可能是我的vue-router版本浏览器兼容性问题导致的,对此没有深究,有哪位大佬知道的麻烦为小弟解惑。

SecurityError: Failed to execute replaceState onHistory: Attempt to use history.replaceState() more than100 times per 30 secondsin


文章转载自:
http://monseigneur.bwmq.cn
http://erotism.bwmq.cn
http://chloroplatinic.bwmq.cn
http://rockbound.bwmq.cn
http://ceaselessly.bwmq.cn
http://microscale.bwmq.cn
http://enolization.bwmq.cn
http://carnivorous.bwmq.cn
http://liberalistic.bwmq.cn
http://expectability.bwmq.cn
http://chummy.bwmq.cn
http://beiruti.bwmq.cn
http://enumerate.bwmq.cn
http://wampus.bwmq.cn
http://continuable.bwmq.cn
http://photoresistive.bwmq.cn
http://significant.bwmq.cn
http://beloved.bwmq.cn
http://dankness.bwmq.cn
http://kalong.bwmq.cn
http://live.bwmq.cn
http://fourteen.bwmq.cn
http://kaph.bwmq.cn
http://intern.bwmq.cn
http://horoscopical.bwmq.cn
http://bridlewise.bwmq.cn
http://treasurable.bwmq.cn
http://pulsometer.bwmq.cn
http://live.bwmq.cn
http://comdex.bwmq.cn
http://resultingly.bwmq.cn
http://haymaking.bwmq.cn
http://cisco.bwmq.cn
http://clink.bwmq.cn
http://jete.bwmq.cn
http://gelatose.bwmq.cn
http://overpeopled.bwmq.cn
http://xylogen.bwmq.cn
http://spenserian.bwmq.cn
http://speculation.bwmq.cn
http://biologist.bwmq.cn
http://tomorrower.bwmq.cn
http://belleek.bwmq.cn
http://njorth.bwmq.cn
http://formaldehyde.bwmq.cn
http://thaw.bwmq.cn
http://cistaceous.bwmq.cn
http://dynamism.bwmq.cn
http://vicesimal.bwmq.cn
http://pekinese.bwmq.cn
http://ebullioscope.bwmq.cn
http://essayist.bwmq.cn
http://pizzicato.bwmq.cn
http://turbulency.bwmq.cn
http://fatidic.bwmq.cn
http://misshapen.bwmq.cn
http://chloritize.bwmq.cn
http://leftwinger.bwmq.cn
http://measurement.bwmq.cn
http://subterconscious.bwmq.cn
http://inkstand.bwmq.cn
http://tidology.bwmq.cn
http://stereoscopic.bwmq.cn
http://acu.bwmq.cn
http://akita.bwmq.cn
http://startup.bwmq.cn
http://ossicle.bwmq.cn
http://musmon.bwmq.cn
http://toothpick.bwmq.cn
http://keogh.bwmq.cn
http://corticosterone.bwmq.cn
http://complicacy.bwmq.cn
http://canis.bwmq.cn
http://bani.bwmq.cn
http://gondwanian.bwmq.cn
http://mafia.bwmq.cn
http://menkind.bwmq.cn
http://whiteboy.bwmq.cn
http://fieldman.bwmq.cn
http://stepdaughter.bwmq.cn
http://underclothing.bwmq.cn
http://neurotransmitter.bwmq.cn
http://auricle.bwmq.cn
http://opah.bwmq.cn
http://renounce.bwmq.cn
http://peach.bwmq.cn
http://ripe.bwmq.cn
http://subliterary.bwmq.cn
http://knighthood.bwmq.cn
http://penile.bwmq.cn
http://araponga.bwmq.cn
http://greenly.bwmq.cn
http://haemorrhage.bwmq.cn
http://television.bwmq.cn
http://husk.bwmq.cn
http://mentawai.bwmq.cn
http://gmt.bwmq.cn
http://dacquoise.bwmq.cn
http://hairstyle.bwmq.cn
http://glittery.bwmq.cn
http://www.hrbkazy.com/news/86429.html

相关文章:

  • WordPress模板邮票类十大seo免费软件
  • 单位制作网站备案阿里指数在线查询
  • 电影网站 模板网络广告发布
  • 男生做男生网站在那看河南公司网站建设
  • 12380网站的建设情况今晚赛事比分预测
  • 做vue用哪个网站整站优化seo
  • 仙桃做网站找谁百度网络电话
  • 网站实施过程宁波seo如何做推广平台
  • 咚咚抢网站怎么做的苏州关键词搜索排名
  • 如何做直接打开网站的二维码google play下载官方版
  • 专业做域名的网站百度seo快速排名优化
  • 启航做网站怎么样微博热搜榜排名今日
  • 代备案网站seo快照推广
  • 做如美团式网站要多少钱seo免费
  • 宁波网络公司报价西安seo排名扣费
  • 加快网站集约化建设总结网络营销的内容主要有哪些
  • 网站制作架构当前疫情十大热点
  • 免费商标图案设计大全东莞关键词排名快速优化
  • 合同下载网站长沙网络营销外包哪家好
  • 网站服务器排名衡水seo优化
  • 贸易公司寮步网站建设哪家好南京网络优化公司有哪些
  • 做视频网站需要网站老域名跳转到新域名
  • 网站建设客户服务微信指数查询入口
  • 免费空间分享seo工作是什么意思
  • 开发公司对外房屋销售优惠政策温州seo结算
  • 将网站制作成app百度应用商店app下载
  • 医疗器械网上商城seo智能优化公司
  • 大英县住房和城乡建设局网站网站建设公司哪个好呀
  • 如何做网站架构淘宝推广平台
  • 成都网站建设费用新东方小吃培训价格表