精华内容
下载资源
问答
  • 而针对 H5 效率慢、体验差的硬伤,如何做好性能测试并优化其性能就显得尤为重要。 红豆 Live 是微博子公司有信旗下的一款语音直播产品,有各种 H5 页面。我们在做 H5 性能测试时进行了总结,本文将为大家详细介绍 ...

    一、背景介绍

    智能手机的普及、移动互联网的发展、微信异军突起,都为 H5 的发展提供了良好的环境。当前,H5 已被广泛应用于营销、广告、传播之中。而针对 H5 效率慢、体验差的硬伤,如何做好性能测试并优化其性能就显得尤为重要。

    红豆 Live 是微博子公司有信旗下的一款语音直播产品,有各种 H5 页面。我们在做 H5 性能测试时进行了总结,本文将为大家详细介绍 H5 性能测试的关注点、测试工具及常见问题。

     

    二、H5 页面的劣势

     

    HTML5 作为一门重要的开发语言,有着显著的优势,其开发速度快、运行效率高、安全性好、可扩展性强、开源自由等,但与手机端原生 APP 相比,H5 页面还具有以下劣势:

    1. 不稳定性比较强,页面跳转时更加复杂,运行速度容易受网络影响,很容易造成不流畅,甚至出现卡顿或卡死现象。

    2. 由于浏览器的导航本身占用一部分屏幕空间,H5 页面空间比 APP 小,在本身就小的移动设备屏幕中,容易造成信息记忆负担。虽然可以利用滚屏扩大页面,但人脑的短期记忆是不稳定的,用户在滚动屏幕的过程中需要临时记忆的信息越多,他们的表现就会越差。

    3. 导航不明显,原有底部导航消失,有效的导航遇到挑战等。

    4. 交互动态效果受到限制,影响一些页面场景、逻辑的理解。

    5. 功能实现相比 APP 存在差距,用户重复使用难度大,用户粘性差。

     

    二、H5 性能优化技巧1. 代码结构和设计 压缩组件

     

    用户使用 H5 功能过程中,绝大多数时间都花在网络请求上,所以减少使用紧张的网络资源在提高性能上能取得良好的收益。组件压缩就是一种减少网络传输消耗的办法。

    从 HTTP 请求返回资源中的 HTML,JS,CSS,XML 等都可以设置压缩。对于已经压缩过的资源(如图片音乐等)不需要再次压缩,收益不高,而且增加 CPU 负担。

    JS,CSS 可以常通过去掉空格和回车来压缩,再经过 GZIP 压缩,能达到良好的压缩效果。

    压缩方法:在 HTTP 请求中设置所接受到压缩方式,在 Server 端对 Response 资源进行压缩再传给浏览器。一般使用 GZIP 设置 content-Encoding 字段。

     

     设计技巧

     

    CSS 放在顶部、JavaScript 写在底部或异步:DOM 树构建完成后,CSS 要放到 HTML 代码的开头的 head 标签结束前。如果网页是动态生成的,那么在 head 代码完成后可以页面输出,这样浏览器就会更快地解析出来 head 中的内容,开始下载 CSS 文件资源。而 CSS 放在底部则会引起重新绘制,用户会感受到“闪屏”的不好体验。

     

     CSS 使用技巧

     

    • 正确使用 Display 属性,因为 Display 属性会影响页面的渲染

    • 避免图片和 iFrame 等空 Src

    • 尽量避免重设图片大小

    • 避免 CSS 表达式

    • 移除空的 CSS 规则

    • 不滥用 Web 字体、Float

    • 不声明过多的 Font-Size

    • 值为 0 时不需要单位

    • 标准化各种浏览器的前缀

    • 避免让选择符看起来像正则表达式

    JS 在下载的时候会引起两个问题:阻止网页内容的展示并组织其他资源下载。下载 JS 时候,并行下载机制失效。并且在 JS 中可能包括 Document.write 等改变页面布局的操作,所以渲染引擎会等待 JS 下载完成再开始渲染。用户侧页面加载时间会因为等待而变得更长。

     

     关于缓存

     

    添加缓存的最终目的是为了减少 HTTP 请求,最终达到提升性能的效果,所有静态资源都要在服务器端设置缓存,并且尽量使用长 Cache 缓存一切可缓存的资源。

     

     

    2. 网络请求 HTTP 请求个数

     

    有统计证明:一个网页最终到达终端用户有 80% 的时间都是在 JS,CSS,图片,MP3,Flash 等资源的 HTTP 请求。另一方面,HTTP 请求的数量也是有限制的,浏览器对同一个域名有连接数限制,不同浏览器内核、不同版本的请求数不尽相同,大部分的并发请求数是 6 个。通过够控制 HTTP 请求的数量,减少 HTTP 请求时间,达到减少网页加载和呈现的时间,能带来更好的用户体验。

     

     图片格式和大小是否合适

     

    图片格式:H5 中常用的图片格式有 WebP、JPG 和 PNG8。其中 WebP 的图片最小,但在 IOS 或者 Android4.0 以下的系统中可能会有兼容性问题需要解决。JPG 是最常使用的方案,大小适中,解码速度快,兼容性问题也基本不存在,在 H5 的应用中使用起来性价比最高的方案。如果有 PNG24|32 图片,尽量将其转换层 PNG8,能极大减少图片大小。BMP 是未压缩的图片格式,应该避免使用。

    图片尺寸:当前移动设备中常用个尺寸规格为 480×800、600×1024、720×1280,800×1280 等,保证提供的原图能够被呈现,避免在代码中调整图片大小。

     

     避免非 200 返回值

     

    每一个 HTTP 请求都有一个相对于的返回状态标志当次请求是否如期完成,如:

    1:请求收到,这些状态代码表示临时的响应。

    2:操作成功,这类状态代码表明服务器成功地接受了客户端请求。

    3:重定向,客户端浏览器必须采取更多操作来实现请求。

    4:客户端错误,发生错误,客户端似乎有问题。

    5:服务器错误,服务器由于遇到错误而不能完成该请求。

    所以,如果有 HTTP 请求返回为非 200 的状态码,我们认为这一次请求时无意义的,占用了稀缺的网络资源,所应该避免非 200 的返回状态码。

     

    三、性能测试工具

     

    推荐采用 Chrome 开发者工具进行性能测试,该工具有以下优点:

    1. 支持移动端 H5 在 PC 端远程调试,能够对具体的移动端设备进行测试;

    2. 集成了 Page Speed;

    3. 提供 Network 面板,展示瀑布流视图,各类资源清晰罗列,还提供图的缩略图,方便查看图片大小尺寸和冗余或缺失;

    4. 提供 TimeLine 面板,展示 CPU、内存、FPS 等性能数据。

    下面看下参考 Google 官方网站,重点介绍 Chrome 开发者工具中的 Network 和 Timeline 面板。

     

    1.Network 面板

     

    Network 面板可以记录页面上的网络请求的详情信息,从发起网页页面请求 Request 后分析 HTTP 请求后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间、Request 和 Response 等),可以根据这个进行网络性能优化。该面板主要包括 5 大块窗格 (Pane):

    1. Controls 控制 Network 的外观和功能。

    2. Filters 控制 Requests Table 具体显示哪些内容。

    3. Overview 显示获取到资源的时间轴信息。

    4. Requests Table 按资源获取的前后顺序显示所有获取到的资源信息,点击资源名可以查看该资源的详细信息。

    5. Summary 显示总的请求数、数据传输量、加载时间信息。

     

    其中 Requests Table 显示如下信息列:

    •   Name 资源名称,点击名称可以查看资源的详情情况,包括 Headers、Preview、Response、Cookies、Timing。

    •   Status HTTP 状态码。

    •   Type 请求的资源 MIME 类型。

    •   Initiator 标记请求是由哪个对象或进程发起的(请求源)。•   Parser: 请求由 Chrome 的 HTML 解析器时发起的。

    •   Redirect:请求是由 HTTP 页面重定向发起的。

    •   Script:请求是由 Script 脚本发起的。

    •   Other:请求是由其他进程发起的,比如用户点击一个链接跳转到另一个页面或者在地址栏输入 URL 地址。

    •   Size 从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源则该列会显示 (from cache)

    •   Time 请求或下载的时间,从发起 Request 到获取到 Response 所用的总时间。

    •   Timeline 显示所有网络请求的可视化瀑布流 (时间状态轴),点击时间轴,可以查看该请求的详细信息,点击列头则可以根据指定的字段可以排序。

     

    2.Timeline 面板

     

    在 Chrome 中点击开发者工具,打开 Timeline 面板,这个工具真的很强大,Timeline 工具栏提供了对于在装载你的 Web 应用的过程中,时间花费情况的概览,这些应用包括处理 DOM 事件, 页面布局渲染或者向屏幕绘制元素。Timeline 可以通过事件,框架,和实时内存用量 3 个方面的数据来监测网页,通过这些数据,我们可以方便的找出页面中存在问题的地方。该面板主要包括 4 大块窗格 (Pane):

    1. Controls 录制开关和控制录制过程中需要记录哪些信息。

    2. Overview 网页性能的概要信息。

    3. Flame Chart CPU 堆栈轨迹的可视化图表 (火焰图)。在图表里面有 1 到 3 条虚竖线。

    4. Details 当选择一个指定的事件后,会显示这个事件的更多信息;当没有选择事件时,会显示指定的时间帧信息。Flame Chart 里面的虚竖线含义:蓝色标记 DOMContentLoaded 事件;绿色标记第一次的绘制时间点;红色代表 load 事件。

     

    其中第 2 块 Overview 显示了网页性能相关的概要信息,可以通过鼠标或者区域边界上的灰色滑块来拖出一个指定区域范围,Flame Chart 会跟着局部放大显示指定区域内的详情信息。

    可以通过键盘上的 W,S 来放大和缩小指定区域,通过 A,D 来向左或向右移动指定区域。这个窗格包含了三个图表:

    1. FPS 每秒帧数 (Frames Per Second)。绿色柱状条越高,则每秒帧数越高。在 FPS 图表上方的红色块是标记一个长帧。

    2. CPU 标记 CPU 资源的使用情况,这里的面积图标记着消耗 CPU 资源的各类事件。

    3. NET 各种颜色的柱状条分别显示一种资源。柱状条越长,代表获取这个资源的时间越长。

     

    CPU 面积图中各颜色的含义:蓝色代表 HTML 文件;黄色代表脚本文件;紫色代表样式文件;绿色代表媒体文件;灰色代表其它杂项文件。NET 图表柱状条两种颜色的含义:较亮的部分表示等待时间(当资源被请求时,直到第一个字节被下载的时间);较暗的部分表示传输时间 (在第一个和最后一个字节被下载之间的时间)。

     

    四、常见问题及优化方案

     

    1. 在请求的资源中有未使用的图片,造成不必要的资源消耗,应过滤掉,如下图所示。

     

    1. 接口请求次数太多。

     

    优化方案:合并页面的多个图片资源,减少请求次数。通过 CSS Sprite 将直播间页面的多个资源合并(如截图中标注的图片),再通过 background-image 和 backgorund-position 定位出图中的小区域,那么只需要一个 HTTP 请求就可以获得全部图片。

     

    1. 事件处理时间长,每项事件最好控制在 500ms 以内。

     

    优化方案:

    •   减少重绘和回流

    •   缓存 Dom 选择与计算

    •   缓存列表.length

    •   尽量使用事件代理,避免批量绑定事件

    •   尽量使用 ID 选择器

    •   使用 touchstart、touchend 代替 click,因快影响速度快。

    1. 帧率低。应用的帧率最好一直保持在 30-60fps,如果太低了,应用就会因为丢帧看上去混乱或者抖动。

     

    优化方案:要想检查一段时间内的绘制(paint)是另一个挑战。如果想知道为什么某个特定的元素绘制的比较慢,可以把 DOM 树中的部分元素设置成 display:none,将它们从布局 / 内容树中移除,并且设置 visibility:hidden 不让它们绘制。然后你可以用 Timeline 进行录制以便测量,看一下绘制时间,在强制重绘模式中可以观察(实验性的)绘制率。(感谢 Paul 提供的窍门)

    1. 点击界面按钮后,二级页面弹出慢。

     

    优化方案:可以调整请求的顺序,由拿到数据再弹层,变成弹层的同时取数据,加快弹层展示时间.

     

    五、总结

     

    目前 H5 的应用非常广泛,如何把控好 H5 的性能是一门重要的课程。从代码设计可以优化 CSS、JS、图片、缓存等。还可以通过 Chrome 开发者工具,监控 H5 的网络请求和加载时间,找到性能消耗较大的根源,优化网络请求数、网络加载时间以及渲染优化。

    转载于:https://www.cnblogs.com/Guernicas/p/10662189.html

    展开全文
  • 很多情况下H5作为微信推广裂变的一种方式,特别是在QP、BC、CP方面的效力,得到特别多的关注和应用,且有些商家通过H5页面搭建虚假红包链接、跳转APP,甚至出现恶意传播来获取关注,造成了特别的大的影响,因用户...

    很多情况下H5作为微信推广裂变的一种方式,特别是在QP、BC、CP方面的效力,得到特别多的关注和应用,且有些商家通过H5页面搭建虚假红包链接、跳转APP,甚至出现恶意传播来获取关注,造成了特别的大的影响,因用户投诉的案例一再激增,所以微信在2019年1月26日颁布了《关于近期诱导违规及恶意对抗的处理公告》禁令,才出现商家主体域名被微信秒封的情况,导致推广出去的二维码和链接用户打不开,这样会错失很多流量。
    既然在人家的地盘,那么就要遵守规矩。就此原因,这里仅对H5域名被微信秒封(被拦截、被屏蔽、被和谐)提些建议,希望对你有帮助。

    第一种就是首先你要有一个微信域名检测接口,配置好你的接口请求程序,准备2套域名A和B。我们分享出去的域名是A,但点开后跳到B,前提是要检测一下B有没有被封,这里我们的 B一般需要准备几十甚至上百个,利用域名检测接口可以轻松实现被封自动切换。这种防封方式一般是比较浪费域名的,而且效果也一般。
    在这里插入图片描述
    第二种是多级加密跳转,这里需要注意的是,着陆页的域名尽可能长一点,落地域名采用多层动态加密形式,有效的保护好我们的原始推广落地页地址。如果是通过海报推广的用户还可以用到我们的活码接口,保证扫描二位码后的链接能够得到有效的切换,延长海报使用寿命。通过实践证明,多级矩阵加密防封效果更好、稳定性会更高。
    那种需要玩家扫描并且需要微信绑定获取玩家信息的只能用这种防封方案,再结合微信内置浏览器直接下载APP接口直接下载app,减少用户收到选择浏览器下载的繁琐,这样可以将推广流量转化率最大化,也更有效的保护微信棋牌域名,这种方案也不浪费域名,前期只需要准备5到8个阿里云备案并且没有被拦截过的域名,最好是.com和.cn的。

    展开全文
  • H5页面唤醒app的方法

    千次阅读 2017-12-28 10:34:54
    iOS/Android 浏览器(h5)及微信中唤起本地APP 会遇到的问题: 如何解决未安装APP时的做好... 在APP未安装情况下,引导用户下载后打开APP后,如何进入之前唤起时指定的页面或内容,即如何实现场景还原 在微信中唤...

    iOS/Android 浏览器(h5)及微信中唤起本地APP

    会遇到的问题:

    1. 如何解决未安装APP时的做好引导页
    2. 如何在微信中唤醒APP
    3. 在iOS9中如何处理universal link被用户误关的情况
    4. 如何解决Android各种机型、各种第三方浏览器导致的兼容问题等
    5. 在APP未安装情况下,引导用户下载后打开APP后,如何进入之前唤起时指定的页面或内容,即如何实现场景还原
    6. 在微信中唤醒APP时,如何进入指定的页面或内容

    原理说明

    首先需要说明,不管iOS还是Android,浏览器都不可能预知本地是否安装了某个APP的。或者更严谨地说,我们不能通过浏览器来预知本地是否安装。因为就算浏览器可以读取本地应用的安装列表,但是目前也没任何一家浏览器提供查询的API,所以这条路是走不通的。

    本质上浏览器是通过URL scheme打开APP,一个APP可以设置一个或多个打开自己的URL scheme。比如,Twitter就注册自己能被「twitter://」打开。

    实现方案

    1.检测浏览器类型

    
        let browser = {
          versions: () => {
            let u = navigator.userAgent
            // let app = navigator.userAgent
            return {
              android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
              iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
              weixin: u.toLowerCase().indexOf('micromessenger') > -1,
              appVersion: (u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1) 
    		&& /OS ((\d+_{2,3})\s/.exec(u[0].replace('OS','').replace('os','').replace(/\s+/g,'').replace(/_/g, '.')
            }
          }
        }
    
    
    

     

    2.打开app函数

    
        openApp (openUrl, appUrl, action, callback) {
          // 检查app是否打开
          function checkOpen (cb) {
            let _clickTime = +(new Date())
            let flag = false
            function check (elsTime) {
              if (elsTime > 3000 || document.hidden || document.webkitHidden) {
                flag = true
                cb(flag)
              } else {
                cb(flag)
              }
            }
              // 启动间隔20ms运行的定时器,并检测累计消耗时间是否超过3000ms,超过则结束
            let _count = 0
            let intHandle = setInterval(function () {
              _count++
              var elsTime = +(new Date()) - _clickTime
              if (_count >= 100 || elsTime > 3000) {
                clearInterval(intHandle)
                check(elsTime)
              }
            }, 20)
          }
          // 在iframe 中打开APP
          var ifr = document.createElement('a')
          ifr.href = openUrl
          ifr.style.display = 'none'
          let event = document.createEvent('MouseEvents')
          event.initEvent('click', true, true)
          ifr.dispatchEvent(event)
          // window.location.href = openUrl
          if (callback) {
            checkOpen(function (opened) {
              callback && callback(opened)
            })
          }
          document.body.appendChild(ifr)
          setTimeout(function () {
            document.body.removeChild(ifr)
          }, 2000)
        },
    
    
    
    

    理想过程是这样:浏览器尝试打开 URL scheme,在1秒计时后,检查当前时间,如果实际时间已过 1200 毫秒,说明唤起APP 成功(唤起 APP 会让浏览器的定时器变慢);如果没超过 1200 毫秒,很可能是没有安装应用,就跳到下载地址。

    但原理都是一样,利用setTimeout。但这其实不稳定,因为Android是基于Linux的分时多任务的,setTimeout的基准偏差可能会没那么大。

    但如果设置比较小的运行间隔(<30ms),在浏览器或者webview中,应用切换到后台,setInterval会被很明显的延迟执行,比如设置一个运行间隔20ms,总计运行100次的定时器,如果页面一直处于前台,则100次跑完,总耗时与 100x20=2000ms不会有太大差异,但页面在后台运行时,此时间会明显超过2000ms。可以利用这一点来实现是否成功打开APP检测及回调。

    另外,可以通过 document.hidden 或 document.[webkit|moz|ms]Hidden 来判断页面是否被置入后台(即应用被唤起),或visibilitychange事件,但对于Android 4.4版本一下则不支持。

    3.点击按钮的时候

    
        if (this.info.weixin) {  
            // alert('请在系统浏览器中打开')  在微信中你的操作
        } else {
            if (this.info.iPhone) { // ios中
                this.openApp('你的app', 'xxx', xxx, (flag) => {
                    if (!flag) {
                      alert('失败了') //你的操作
                    }
                })
            } else if (this.info.android) { //android
                this.openApp('你的app', 'xxx', xxx, (flag) => {
                    if (!flag) {
                      alert('失败了') // 你的唤起失败操作
                    }
                })
            }
        }
    
    
    

    在 iOS 9 上,iframe 方案变得不可用。
    不能使用之前Android的代码,因为在打开自定义 URL scheme 时,会弹出对话框,询问是否用 xx 应用来打开。往往用户还没来得及点击打开,定时器又触发了,导致跳到 App Store。

    可以在尝试打开URL scheme 后,再加一个页面跳转,这样对话框会被覆盖,再刷新页面,就能无需确认唤起APP:

    $('a').click(function() {
        location.href = '自定义 URL scheme';
        location.href = '下载页';
        location.reload();
    }

     

    这里,下载页延时 2 秒跳转到 App Store。

    APP已安装这是没问题的,但如果APP未安装,跳 App Store 的请求会失败。
    这时可以使用两个定时器:

     

    $('a').click(function() {
        location.href = '自定义 URL scheme';
        setTimeout(function() {
            location.href = '下载页';
        }, 250);
        setTimeout(function() {
            location.reload();
        }, 1000);
    }

    不过在iOS9中其实是支持universal link的,就是一个http域名形式,在微信中都可以唤起APP。如果未安装的话,可以直接引导用户去APP store下载。

    可以参考这篇文章

    http://www.magicwindow.cn/doc/#universal-link-info

    微信中打开

    因为微信将唤起本地APP的接口给禁了,所以微信中是不能直接唤起APP的,一般做法是提示用户在浏览器中打开,之后的流程还是我们上面讲的内容。

    但是,在iOS9中,这个限制是可以突破的,也就是说可以直接唤起APP。方法就是使用我们上文提到的universal link。

    在Android和iOS8及其以下系统中,我们可以利用腾讯的亲儿子:应用宝。简单讲,就是把你的唤起地址配置成你APP的应用宝地址,微信中跳转到这个地址后,如果用户已经安装了APP,则可直接唤起,如果没有安装,则可直接点击下载,

    展开全文
  • 微信屏蔽网页的依据是什么? 明面上的原因是网页内容...微信是互联网公司,如果用大量客户来人工判断是否封杀这成本太大了,估计1万客服都应付不过来,而且据我所知很多正常的页面也会无故被封,应该是被恶意举报,...

    微信屏蔽网页的依据是什么?
    明面上的原因是网页内容有诱导、诈骗等不和谐的内容时候,被用户举报就会封闭。实际上这只是表面现象,因为我们能明确的感受到不同的阶段,同样的内容,被封杀的频率差别很大的,也就是说除了被举报人数多了之外,更重要的是机器识别导致的。微信是互联网公司,如果用大量客户来人工判断是否封杀这成本太大了,估计1万客服都应付不过来,而且据我所知很多正常的页面也会无故被封,应该是被恶意举报,如果是客服判断的话,人工举报也不会封杀正规的网站对吧?

     

    很明显得出结论,微信一定是技术识别占大多数。只有达到一定程度举报技术上仍然无法封杀的页面才会到达人工审核的地步。举报数量仅仅是一个判断因素,他并不能决定网页的生死,就像百度判断网站的权重一样,会有一个复杂的因素集合和一堆的算法评判标准。

    另外一个关键因素是关键词识别,被封杀的页面会被算法进行特征识别,当你用的程序源码包含的特征与被和谐的特或者相似度很高,频率很高的时候,你就会被自动被和谐。这很像是病毒特征识别算法。

    近来很多商家开始重视域名防封的技术了,为什么呢,因为实在是封怕了。三天两头就得去换域名,换域名是小事,用户流失就是大事了,直接跟利益挂钩的。那么域名防封技术究竟有多重要呢?又该如何实现域名防封呢?下面给大家分享一些自己的经验。

    obp0zlnu.png

    案例分析

    首先我们来说一下域名的重要性,在百度统计“流量入口选择”一项中,2016年12月1日到2017年5月31日共6个月的数据统计结果显示:

    通过域名直接访问域名的用户是43.37%

    通过搜索引擎的是27.75%

    通过其他外链的是27.44%

    通过导航网站的是0.99%

    通过社会化媒体的是0.46%

    从上面的统计数据可知,域名与用户之间所建立起来的信任和依赖,可以创造更多的流量,为品牌产品的开发带来很多可能。而且从中我们也可以知道,域名的价值不仅仅提现在流量的入口那么简单,因为不管是直接访问还是外链访问,这种访问的方式都跟域名直接相关,因此域名给企业带来的价值也是不可以小看的。

    域名被封的原因

    1. 域名来源,在微信有过黑历史,被人使用过在微信有过不良记录,后来被人为各种方法恢复后转到你手上,这种域名很容易被封。

    2. 域名分享量太大。

    3. 域名指向的站点内容违规,站点内容被微信记录html结构特征。

    4. 微信对内容违规的站点URL记录结构特征。

    5. 同行竞争,恶意举报。

    6. 服务器ip被加入封杀黑名单。

    防封解决方案

    一、老站和知名站点的域名

    其实是跳板原理。建站时间久和行业内相对知名的域名最不容易被微信封杀,当跳转代码注入到上述网站再利用安防等我网址做跳转,指向落地页,被微信封杀的可能性微乎其微;也有同行用融合软件解决,这个问题我可以和大家单独讨论。

    二、微信域名检测接口

    微信域名检测接口,做到防患于未然。这个可以自己开发也可以购买。

    三、换域名

    把A域名,作为分享域名; 把B域名,作为落地域名(也就是用户访问看到的域名); 只有从A域名跳转到B域名,B域名显示的才是我们想展示给用户的内容,如果直接复制B的网址,打开的只是一个错误页面或者不违规的内容,也就是说如果TA点击右上角举报,举报的和访问的虽然是同一个网址,可是显示的内容却不同。从而最大限度的防止域名被封杀。

    四、屏蔽微信右上角举报按钮

    通过技术,屏蔽微信右上角的举报按钮,直接让用户无法举报,直接屏蔽了微信的举报功能,效果很不错。 微信技术在不断升级更新,以后有机会把防屏蔽机制和经验总结给大家交流。

     

    展开全文
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销没啥可...
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销没啥可...
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销没啥可...
  • 现在网上其它的方法都只是一个页面,让访问者自己手动点右上角浏览器打开,而这个不同,是可以直接自动跳转的。 安卓访问时可以直接自动跳转浏览器;IOS就复杂一点了,需要点一下然后借助手机淘宝才可以跳转。 ...
  • 近来域名防封技术已经被众多商家重视了,估计大部分朋友已经对防封这...1、页面里面的内容违规或者诱导被举报而导致的拦截 2、用户和同行举报 3、腾讯等定期会检查 4、有诱导分享,强制关注等, 代码分享 $url ...
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销没啥可...
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销没啥可...
  • 现在网上其它的方法都只是一个页面,让访问者自己手动点右上角浏览器打开,而这个不同,是可以直接自动跳转的。 安卓访问时可以直接自动跳转浏览器;IOS就复杂一点了,需要点一下然后借助手机淘宝才可以跳转。 ...
  • H5 如何唤起百度地图 App

    千次阅读 2019-01-25 10:34:33
    最近接手了一个需求,要求混合式开发,前端做好 h5 后将页面嵌入到 ios 和 android 中,需要用到百度地图的地图导航。具体功能点如下: 如果手机端(ios, android)安装了百度地图,点击导航按钮,唤起百度地图 app...
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销没啥可...
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销没啥可...
  • 腾讯对微信中推广活动的第三方网页内容管控的越来越严格,如果推广效果稍微好一些,自己的网址域名可能就会被拦截屏蔽,用户打不开页面,造成流量中断,客户的流失严重,基本处于没法搞的地步。搞微信病毒营销...
  • H5支付是基于公众号基础开发的一种非微信内浏览器支付方式(需要单独申请支付权限),可以满足在微信外的手机H5页面进行微信支付的需求。同时,由于H5链接传播十分方便、来源不易追踪,商户需要特别注意做好防钓鱼、...
  • 比如微信好友或朋友圈发一些类似H5页面的链接,类似于公众号一样自带缩略图和简介的小方格.如果自己去申请公众号来设置,会异常复杂.我们知道公众号虽然门槛低,但是从来没有接触过的人会在使用上有困难。但是有一些...
  • 前端页面做好打包后,可以转成app/exe 转成app:https://www.apicloud.com/console 新建webapp项目 网址填写你的项目运行的地址,比如localhost:8080但是这是本地的 手机连接电脑的wifi才可以访问 最好部署到云服务器...
  • 移动端的H5是目前的一大趋势,毕竟就目前来说手机占据的极大的市场,人们每次都会在空闲时刻拿起自己的手机浏览网页,应用以及各种内容,但是针对于各种不同的手机长宽比以及分辨率是不同的,如何能够在不同的手机上...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

如何做好h5页面