ios下,内嵌h5页面自动放大

1,582 阅读1分钟

在ios下面,内嵌的h5页面,在碰到input下被自动的放大,首先想到的第一种方法是加meta标签

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">

霹雳扑棱的加上,发现么有用。 找啊找,第二种方法,vue项目下,在main.js下添加代码

created () {
    window.onload = function () {
      // 阻止双击放大
      let lastTouchEnd = 0
      document.addEventListener('touchstart', function (event) {
        if (event.touches.length > 1) {
          event.preventDefault()
        }
      })
      document.addEventListener('touchend', function (event) {
        let now = (new Date()).getTime()
        if (now - lastTouchEnd <= 300) {
          event.preventDefault()
        }
        lastTouchEnd = now
      }, false)
      // 阻止双指放大
      document.addEventListener('gesturestart', function (event) {
        event.preventDefault();
      })
    }
  }

突然发现,好使了,开森~

但是万万没想到,又出现了新的情况,想撞墙。 情况是这样的,ios机型的普通情况下,用了以上两种办法是完全OK,但是:在打开了后端返回的模板页面,再回到我们带有input的页面,当点击input的时候,啊~,页面被放大了。凄凄惨惨戚戚~ 后来绞尽脑汁,哦,后端传过来的模板,meta标签不完全,怪不得失效了。既然他传过来的内容不加上,我来帮他加上~

  let length = strContent.indexOf('<title></title>')
  let content = strContent.slice(0,length) + '<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">'+ strContent.slice(length)

哇~脑秃的路程结束了,再会~