精华内容
下载资源
问答
  • 在本篇内容里小编给大家整理了关于vue写h5页面的方法以及注意点分析,有需要的朋友们跟着学习下吧。
  • H5页面案例demo.rar

    2019-05-30 09:42:47
    直接放到app里面的H5页面,用到了axios和vue.js。ajax接受数据
  • h5页面模版源码

    2018-03-22 10:06:04
    h5页面模版源码 ,非常酷炫的html5模板 ,可以直接使用,也可以参考学习
  • 移动端h5页面调试技术,如何在移动端调试,不错的入门教程
  • 微信公众号H5页面

    2018-11-06 18:08:41
    模仿微信公众平台做的简单静态页面,里面包含了用户列表,标签设计,关注回复等功能
  • 微信公众号h5页面制作,微信公众号H5吸粉模板源码 。源码参考链接:www.pikao.cn
  • H5多种加载效果loading,H5页面加载中动画,炫酷的加载中动画
  • h5页面选择颜色 ,多选颜色 ,input、select、img选择、颜色选择器 | RGB颜色查询对照表
  • android集成cordova 并调用h5页面 有两个H5页面
  • 电商项目源码,包含了所有一整套端,有需要端同学可以下载
  • 手机页面强制横屏显示 竖屏会有手机旋转遮罩提示 之前整理的文件 现在清理电脑,先上传,以备下次使用...
  • 用php的方法在:H5页面唤起支付宝app支付 使用php 写了一个在网页端 弹出支付宝app进行支付的方法.
  • 安卓与H5页面的简单交互
  • 这个页面主要展示如果一个页面中的内容特别多的时候,内容收缩展示部分内容,点击展示之后,显示所有的内容,点击收缩展示部分的内容。
  • H5页面禁用微信浏览器下拉,使其下拉不会出现黑色来源显示,在JS文件中定义此方法即可。
  • 最近公司要求做一个移动端商品类目展示效果,利用dropload+swiper两个插件结合写了以上内容
  • H5页面分享内容至QQ、微信功能,支持调起市面大多主流浏览器自带分享,微信内需先做权限配置,配置相关可查阅微信开发文档
  • H5页面调用ios方法

    2016-01-22 11:46:23
    高手封装成一个方法,好用,直接调用就可以,里面有例子
  • h5页面注入js代码

    2016-09-01 11:41:18
    h5页面注入js代码
  • 小程序背景音乐!!!小程序背景音乐!!!小程序背景音乐!!!
  • H5页面修改器.zip

    2020-09-30 16:08:24
    H5页面修改器,可用于页面编辑,修改,制作 H5页面修改器,可用于页面编辑,修改,制作 H5页面修改器,可用于页面编辑,修改,制作 H5页面修改器,可用于页面编辑,修改,制作 H5页面修改器,可用于页面编辑,修改,...
  • 解决ios的app内H5页面倒计时在锁屏后停止或延迟的解决方案
  • H5页面APP端展示(下拉刷新,上拉加载)

    千次下载 热门讨论 2015-12-16 10:35:27
    H5页面APP端展示(下拉刷新,上拉加载)
  • 一看就明白的微信H5页面制作教程 H5页面微场景制作 入门教程入门了,一切都变得很简单!
  • 移动端h5页面长按复制的完整代码,包含安卓和ios,可供学习使用
  • 安卓webview中h5页面里的js和java相互调用,js和Android代码相互调用
  • 项目中的需求:点击浏览器中的返回按钮,要让页面重新加载资源。因为这部分的资源每次去加载的内容都不一样,如果返回的时候,还是看到原先的内容,那做这个内容块的意义就很小了;而如果用户看完了这部分内容,再返...

    项目中的需求:点击浏览器中的返回按钮,要让页面重新加载资源。因为这部分的资源每次去加载的内容都不一样,如果返回的时候,还是看到原先的内容,那做这个内容块的意义就很小了;而如果用户看完了这部分内容,再返回来的时候,这个地方换成了新的内容,这样就能体现这部分的价值了。

    而对于浏览器来说,大部分浏览器的返回是直接使用缓存的,不会执行任何的javascript代码。原因:部分浏览器在后退时不会触发onload事件,這是HTML5世代浏览器新增的特性之一——Back-Forward Cache(简称bfcache)

    什么是bfcache?

    bfcache,即back-forward cache,可称为“往返缓存”,可以在用户使用浏览器的“后退”和“前进”按钮时加快页面的转换速度。这个缓存不仅保存页面数据,还保存了DOM和JS的状态,实际上是将整个页面都保存在内存里。如果页面位于bfcache中,那么再次打开该页面就不会触发onload事件

    pageshow事件

    这个事件在用户浏览网页时触发,pageshow 事件类似于 onload 事件,onload 事件在页面第一次加载时触发, pageshow 事件在每次加载页面时触发,即 onload 事件在页面从浏览器缓存中读取时不触发。

    pagehide事件

    该事件会在用户离开网页时触发。离开网页有多种方式。如点击一个链接,刷新页面,提交表单,关闭浏览器等。pagehide 事件有时可以替代 unload事件,但 unload 事件触发后无法缓存页面。

    persisted属性

    pageshow事件和pagehide事件的event对象还包含一个名为persisted的布尔值属性。

      对于pageshow事件,如果页面是从bfcache中加载的,则这个属性的值为true;否则,这个属性的值为false。
      对于pagehide事件,如果页面在卸载之后被保存在bfcache中,则这个属性的值为true;否则,这个属性的值为false。
     

    不同的浏览器在对当前窗口‘打开’历史记录中的前一个页面的表现上并不统一,这和浏览器的实现以及页面本身的设置有关系。

    解决方案:

    javascript监听pageshow事件阻止页面进入bfcache

    window.addEventListener('pageshow', function (e) {
         if (e.persisted) {
             window.location.reload()
         }
    })

    在uc和微信中测试通过,但是在某些安卓手机自带的浏览器中无效。

    javascript监听pagehide事件阻止页面进入bfcache

    window.addEventListener('pagehide', function (e) {
        var dom = document.body;
        dom.children.remove();
        setTimeout(function () {
            dom.appendChild("<script type='text/javascript'>window.location.reload();<\/script>");
        });
    });

    设置meta标签,清除页面缓存

    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />

    Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下
    Public指示响应可被任何缓存区缓存
    Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效
    no-cache指示请求或响应消息不能缓存
    no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
    max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应
    min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应
    max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
    注:有些情况下设置清除缓存也没有起到作用,我自己做的这个h5页面就没有起到效果。具体情况还是要具体分析。

    我遇到的情况:

    <div class="content">
         <iframe id="iframe" src="https://cpu.baidu.com/xx/xx/xxx" frameborder="no" scrolling="no"></iframe>
    </div>

    这个iframe中的地址每次刷新页面都会有不同的内容推送给用户。进入iframe中的内容之后,按返回按钮返回来想进行页面自动刷新,为的就是让用户看到新的内容。

    做法:

    使用pageshow进行整个页面刷新

    window.addEventListener('pageshow', function (e) {
         if (e.persisted) {
             window.location.reload()
         }
     })

    这样可以实现。

    后面又觉得不妥,没有因为这个小部分而进行整个页面刷新,想到了另一种思路:因为这个iframe中的内容是动态的,可以对其进行定时器设置,如下:

    let iframe = document.getElementById('iframe')
     setInterval(() => {
         iframe.setAttribute("src", "https://cpu.baidu.com/xx/xx/xx");
     },15000)

    这样也可以实现自己的功能。

    最后可以结合一下:

    let iframe = document.getElementById('iframe')
    window.addEventListener('pageshow', function (e) {
        if (e.persisted) {
            iframe.setAttribute("src", "https://cpu.baidu.com/xx/xx/xx");
        }
    })

    这样做也有好处,可以避免使用定时器,对网页的性能也是比较好。但是这个方法在返回的时候,可以看到iframe里面内容的重新加载,会有一个时间间隙。

    另外还有两种方法监听页面离开返回:

    方法一:

    this.pushHistory();
     
     
           window.addEventListener("popstate", function(e) {
               //do something
                console.log("我监听到页面离开了")
            },false);
     
     
        pushHistory: function() { //改方法添加了一个历史记录,路径为#,保证了不刷新页面,不直接后退。
            var state = {
                title: "title",
                url: "#"
            };
            window.history.pushState(state, "title", "#");
        }

    参考知识点:History详解

    https://developer.mozilla.org/zh-CN/docs/Web/API/History_API

    方法二:

    document.addEventListener("visibilitychange", function() {
      console.log( document.hidden );
      // 逻辑处理
    });

    Document.hidden (只读属性)返回布尔值,表示页面是(true)否(false)隐藏。

    参考链接:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/hidden

    展开全文
  • h5页面开发

    千次阅读 2018-08-01 16:43:00
    相信大家在做h5页面开发的时候,也会遇到一些问题。笔者将h5开发过程中常见的一些问题和解决办法列举出来,有需要的朋友可以参考一下。 1. 安卓浏览器看背景图片,有些设备会模糊。  同等比例的图片在PC端页面和...

            相信大家在做h5页面开发的时候,也会遇到一些问题。笔者将h5开发过程中常见的一些问题和解决办法列举出来,有需要的朋友可以参考一下。

    1. 安卓浏览器看背景图片,有些设备会模糊。

            同等比例的图片在PC端页面和移动手机端页面的分辨率差很多,原因和devicePixelRatio有关。手机分辨率比PC端的分辨率小,按照分辨率来显示网页会让字体变得很小。所以苹果当初就把iPhone 4的960*640分辨率,在网页里只显示了480*320,devicePixelRatio=2。现在android比较乱,有1.5的,有2的也有3的。

            想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍)。例如一个div的宽高是100100,背景图必须得200200,然后background-size:contain;,这样显示出来的图片就比较清晰了。

            代码如下:

    background:url(../images/icon/all.png) no-repeat center center;

    -webkit-background-size:50px 50px;

    background-size: 50px 50px;display:inline-block; width:100%; height:50px;

    或者指定 background-size:contain;都可以

     

    2. 图片加载

            若遇到图片加载很慢的问题,对这种情况,手机开发一般用canvas方法加载。

            下面举例说明一个canvas的例子:

            <li><canvas></canvas></li>

            js动态加载图片和li 总共举例17张图片!

            var total=17;

            var zWin=$(window);

            var render=function(){

             var padding=2;

             var winWidth=zWin.width();

             var picWidth=Math.floor((winWidth-padding*3)/4);

             var tmpl ='';

             for (var i=1;i<=totla;i++){

             var p=padding;

             var imgSrc='img/'+i+'.jpg';

             if(i%4==1){

              p=0;

             }

      tmpl +='<li style="width:'+picWidth+'px;height:'+picWidth+'px;padding-left:'+p+'px;padding-top:'+padding+'px;"><canvas id="cvs_'+i+'"></canvas></li>';

             var imageObj = new Image();

             imageObj.index = i;

             imageObj.onload = function(){

     

    3. 防止手机中网页放大和缩小

            手机网站开发者都应该都知道的基本常识,就是设置meta中的viewport。

            除此以外,当我们在一些手机网站看到如下声明时:

      <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

            设置了DTD的方式是XHTML的写法,假如我们页面运用的是html5,可以不用设置DTD,直接声明<!DOCTYPE html>。

            使用viewport使页面禁止缩放。通常把user-scalable设置为0来关闭用户对页面视图缩放的行为

            <meta name="viewport" content="user-scalable=0" />

            但是为了更好的兼容,也可以使用完整的viewport设置。

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

     

    4. apple-mobile-web-app-capable

            apple-mobile-web-app-capable是设置Web应用是否以全屏模式运行。

            语法:

            <meta name="apple-mobile-web-app-capable" content="yes">

            说明:如果content设置为yes,Web应用会以全屏模式运行,反之,则不会。content的默认值是no,表示正常显示。你可以通过只读属性window.navigator.standalone来确定网页是否以全屏模式显示。

     

    5. html5调用安卓或者ios的拨号功能

            html5提供了自动调用拨号的标签,只要在a标签的href中添加tel:就可以了。

            如下:

            <a href="tel:10010">10010</a>

     

    6. 上下拉动滚动条时卡顿、慢

            body {

     

             -webkit-overflow-scrolling: touch;

     

             overflow-scrolling: touch;

     

            }

            以上就是笔者整理的一些常见的h5页面开发中会遇到的问题。当然,如果觉得自己动手开发麻烦,预算又充足的话,也可以找外部承包商来完成开发。笔者体验过这家服务商开发的h5页面,效果还可以哦。

     

    展开全文
  • 需求背景:因为业务需要从H5页面跳转到小程序页面,再从小程序页面返回到H5时,H5页面也要刷新 目前在这个问题时有很多思路,大概如下: 1.document.hidden判断页面是否可以见(此方法在Chrome浏览器下能够准备的...

    需求背景:因为业务需要从H5页面跳转到小程序页面,再从小程序页面返回到H5时,H5页面也要刷新

    目前在这个问题时有很多思路,大概如下:

    1.document.hidden判断页面是否可以见(此方法在Chrome浏览器下能够准备的打印出页面的显示与隐藏,但是在小程序环境中嵌入的H5页面没有任何打印)

    var hidden, visibilityChange;
    if (typeof document.hidden !== "undefined") {
        hidden = "hidden";
        visibilityChange = "visibilitychange";
    } else if (typeof document.mozHidden !== "undefined") {
        hidden = "mozHidden";
        visibilityChange = "mozvisibilitychange";
    } else if (typeof document.msHidden !== "undefined") {
        hidden = "msHidden";
        visibilityChange = "msvisibilitychange";
    } else if (typeof document.webkitHidden !== "undefined") {
        hidden = "webkitHidden";
        visibilityChange = "webkitvisibilitychange";
    }
     
    // 添加监听器
    document.addEventListener(visibilityChange, function() {
        console.log("当前页面是否被隐藏:" + document[hidden]);
    }, false);

    2.根据页面生命周期判断是否需要刷新页面(这个方法在真机测试时会出现页面一直刷新,不符合预期)

    // 根据页面是否有缓存,判断页面是否需要刷新
    window.onpageshow = function(event) {
        if (event.persisted || window.performance && window.performance.navigation.type == 2) {
                window.location.reload();
            }
        }
    //根据页面的显示和隐藏,判断是否需要刷新
    var isPagesHide;
    window.addEventListener('pageshow', function() {
            if(isPagesHide) {
                window.location.reload();
            }
        })
    window.addEventListener('pagehide', function() {
        isPagesHide = true;
    })

    3,.根据路由变化,判断是否需要刷新页面(好用)

    //在小程序跳回H5页面时添加参数reloadPage,通过新旧路由中参数的有无,判断页面是否需要刷新
       window.onhashchange = function (e) {
            if(e.newURL.indexOf('reloadPage') > -1) {
                // todo
            }
        }

     

    展开全文
  • 微信公众号授权H5页面

    千次阅读 2020-12-16 15:39:03
    使用 uniapp 开发的 H5 项目,需要通过公众号授权后,才能获取用户信息。 PS: 如果用 uniapp 开发小程序,可以走小程序的授权,这次用的 H5 二、授权大致步骤 1、网页授权回调域名 在微信公众号请求用户网页授权...

    一、为何通过微信公众号授权

    官方:

    如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,
    来获取用户基本信息,进而实现业务逻辑。
    

    项目:

    使用 uniapp 开发的 H5 项目,需要通过公众号授权后,才能获取用户信息。
    PS: 如果用 uniapp 开发小程序,可以走小程序的授权,这次用的 H5
    

    二、授权大致步骤

    1、网页授权回调域名

    	在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的
    “开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,
    修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,
    因此请勿加 http:// 等协议头;
    

    2、授权回调页面域名
    详细可看 微信公众平台授权流程分析

    1 和 2 都是在微信公众号需要做的配置
    

    3、具体项目怎么使用,废话不多话,直接上代码

    在这里插入图片描述

    wechatAppId: 公众号的 appid,即唯一标识
    state:重定向后会带上 state 参数,可以不带 state 参数
    redictPath: 授权后重定向的回调链接地址
    
    const authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${wechatAppId}&redirect_uri=${redictPath}&response_type=code&scope=snsapi_userinfo&state=${state}#wechat_redirect`
    
    最后 把 authUrl 赋值给 window.location.href,就可以自动跳转到重定向的链接地址
    地址里面就有 code 这个参数,获取 code 值后,把 code 传给后台
    后台返回 openId 作为前后台联调的重要参数
    

    三、遇见的问题

    后台配置不一致
    在这里插入图片描述

    1、需要在微信公众号上配置:
    在这里插入图片描述
    2、如果这个也配置了,还是有异常,有可能是前端路径带有 # 造成的。
    redirect_uri里面带有#也会造成这个原因
    需要encodeURI:

    const messageBoardUrl = isDev ? testFrontUrl + '/#/pages/messageBoard/Index' : prodFrontUrl + '/#/pages/messageBoard/Index'
    const redictPath = encodeURIComponent(messageBoardUrl)
    

    3、最后一次出现这种情况

    刚开始用的是公司的公众号,后来换成客户的公众号了,appId 没有变更,导致又出现这种情况
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 128,673
精华内容 51,469
关键字:

h5页面