h5页面运行环境判断

  • 判断h5页面所处的运行环境,以便针对不同的环境做兼容性或差异化处理;
  • 由于很多时候需要一进页面就第一时间做处理,所以异步的判断方法都不予考虑,必须是能实时获取的;
  • 那么自然的,判断UA是最好、最方便的方式。

一、先上代码:js封装

platform.js:

const ua = window.navigator.userAgent.toLowerCase()

// android平台
const isAndroid = (() => {
  return /Android|Adr/i.test(ua)
})()

// ios平台
const isIos = (() => {
  return /iPhone|iPod|iPad/i.test(ua)
})()

// 微信生态
const isWechat = (() => {
  return /MicroMessenger/i.test(ua)
})()

// 微信小程序
const isWxmp = (() => {
  return /miniProgram/i.test(ua) || window.__wxjs_environment === 'miniprogram'
})()

// 钉钉环境
const isDingding = (() => {
  return /DingTalk/i.test(ua)
})()

// 自家的android客户端
const isInnerAdr = (() => {
  return isAndroid && /dianyidian/i.test(ua)
})()

// 自家的ios客户端
const isInnerIos = (() => {
  return isIos && /dianyidian/i.test(ua)
})()

// 自家的app客户端
const isInnerApp = (() => {
  return isInnerAdr || isInnerIos
})()

// 站内
const isInner = (() => {
  return isInnerAdr || isInnerIos || isWxmp
})()

// 站外
const isOuter = (() => {
  return !isInner
})()

export default {
  isAndroid,
  isIos,
  isWechat,
  isWxmp,
  isDingding,
  isInnerAdr,
  isInnerIos,
  isInnerApp,
  isInner,
  isOuter
}

二、js封装代码的一些说明

  • 微信生态,包括微信小程序、微信内置浏览器、微信公众号等
  • 针对hybrid混合开发模式中的webview内嵌h5页,需要判断自家的客户端,这时需要让客户端开发人员修改webview的UA,添加上特殊的UA标识,用来给h5做判断,比如我这里的标识就是dianyidian。
  • 关于站内站外的划分因人而异,自己决定,使用方便就好。
  • 导出的每一个属性值都是boolean类型,true或false。
  • 在自家ios客户端接入阿里百川后发现UA被莫名的覆盖了,这种情况可以额外加个判断处理:
// 自家ios客户端
const isInnerIos = (() => {
  if (isIos && /baichuan/i.test(ua)) {
    // 兼容ios客户端跳转阿里百川授权后再打开webview的userAgent被百川覆盖的问题
    return true
  }
  return isIos && /dianyidian/i.test(ua)
})()
  • 以上都是实际项目中经过考验了的,放心使用。

三、配合vue封装个自定义指令

  • 指令作用:根据页面运行环境给元素添加相应的class类名,这样就可以在css样式里很方便的对不同环境做不同的处理。
  • 指令封装:
// 先引入上述封装的platform.js
import platform from '@/utils/platform'

export default {
  bind (el) {
    Object.keys(platform).forEach(v => {
      if (platform[v]) {
        el.classList.add(v)
      }
    })
  }
}
  • 使用示例:
<template>
    <div class="demo" v-platforms>使用示例</div>
</template>

<script>
import platforms from '@/directive/platforms/index'

export default {
  directives: { platforms }
}
</script>

<style lang='less' scoped>
.demo {
  color: red;
  
  &.isAdr {
    // 安卓平台下的自定义样式处理
  }
  &.isIos {
    // ios平台下的自定义样式处理
  }
  &.isWxmp {
    // 微信小程序下的自定义样式处理
  }
  // 其他环境下也一样,任性的加......
}
</style>
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: h5 仿易企秀的上下翻页功能可以通过以下步骤来实现: 首先,我们需要在h5页面中引入相应的CSS和JavaScript文件,以确保页面可以正常运行。然后,在页面底部添加一个翻页按钮,用于控制上下翻页的动作。 接下来,我们需要编写JavaScript代码来实现翻页的功能。我们可以使用addEventListener方法来添加一个click事件监听器,当用户点击翻页按钮时,触发相应的事件函数。 在事件函数中,我们可以使用document对象的getElementById方法来获取页面中要进行翻页的元素,并使用style属性来改变其位置,以实现翻页的效果。例如,将上一页的元素向上移动一个页面高度的距离,或将下一页的元素向下移动一个页面高度的距离。 需要注意的是,在进行翻页操作时,我们还需要判断当前页面是否已经到达边界,以避免翻页超出范围。我们可以通过获取当前页面的位置信息,然后进行判断和计算来确定是否可以进行翻页。 最后,我们可以通过CSS样式来美化翻页按钮的外观,使其更加符合易企秀的设计风格。 总结起来,h5仿易企秀的上下翻页功能是通过引入相应的文件、添加翻页按钮、编写JavaScript代码和使用CSS样式来实现的。通过控制元素的位置来实现页面的上下切换,同时需要判断边界条件以保证翻页操作的正确性。这种方法可以为用户提供更好的页面浏览体验。 ### 回答2: H5仿易企秀上下翻页是指在H5页面制作过程中,模仿易企秀平台的功能进行上下翻页展示。易企秀是一款在线制作H5页面的工具,它可以让用户方便地创建和展示各种互动效果的页面。 在H5仿易企秀上下翻页中,我们可以通过一些技术手段实现该功能。首先,可以使用HTML、CSS和JavaScript等前端技术来创建页面布局和动画效果。其次,可以使用一些插件或框架来增加页面的交互性和视觉效果,比如使用jQuery插件或Bootstrap框架。然后,可以通过监听用户的滚动事件或点击事件来触发页面的上下翻页效果。 具体实现上下翻页的方式有多种,其中一种常用的方式是通过CSS的transform属性和translateY函数来实现页面的垂直位移。通过JavaScript监听用户的滚动事件或点击事件,可以获取到用户的滚动方向或点击位置,再配合CSS的transform属性,就可以实现页面的平滑过渡效果,从而完成上下翻页的效果。 总之,H5仿易企秀上下翻页是一种通过前端技术实现的H5页面翻页效果,可以给用户带来独特的浏览体验,丰富页面的互动性和视觉效果。 ### 回答3: H5仿易企秀上下翻页是指在H5网页中使用类似易企秀软件的上下翻页功能。易企秀是一款专业的H5制作工具,它能够帮助用户快速制作出各种酷炫的互动H5页面。在易企秀中,上下翻页是一种常见的页面切换效果,它能够让用户通过上下滑动页面来浏览不同内容。 要在H5中实现仿易企秀的上下翻页效果,首先需要使用HTML和CSS来构建页面结构和样式。可以使用HTML的div元素来划分不同的页面部分,然后使用CSS来设置每个页面的高度、宽度和定位等属性。为了实现上下翻页效果,可以使用CSS的transform属性来设置页面的位移。通过给每个页面添加事件监听器,在用户滑动页面时改变页面的位移,从而实现上下翻页的效果。 在JS中可以使用一些插件来帮助实现上下翻页效果,比如Swiper、FullPage.js等。这些插件可以提供快速易用的API以及各种配置选项,使得实现上下翻页效果更加简单。通过在页面中引入对应的插件文件,然后根据插件的文档说明进行初始化和配置,即可实现上下翻页效果。 总之,通过使用HTML、CSS和JS,结合一些插件或者自己编写代码,就可以实现仿易企秀的上下翻页效果。这样用户在浏览H5页面时就可以通过滑动来切换不同的页面内容,提升了用户体验和页面的交互性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值