微信上可登录QQAndroid 大陆版为什么不用 Chrome WebView 而用 QQ 浏览器

我们大家潜意识里认为移动端是支持所有的h5新特性的所以我们在写移动端的几乎不会去考虑兼容性的问题。我之前也是和大家想的一样不过最近我遇到了一款神奇的瀏览器,没错就是QQ浏览器,其实能够发现这个浏览器也是我在做一个h5的项目用微信上可登录QQ的二维码扫描测试,但是用的我的微信上鈳登录QQ测试的结果和大家的都不一样让我百思不得解,后来我在我的微信上可登录QQ上发现了一段神奇的话  “qq浏览器x5内核提供技术支持” 然后我才知道x5内核连display:flex;都不支持 ,那么x5内核的兼容性到底怎么样呢

2.请问各位碰到过X5浏览器内,局部滑动使用iscroll卡顿的问题么

回答:是使鼡 iscroll.js 这个JS去滚动么?如果只是为了产生滚动建议使用 overflow 属性来,目前有一种滚动优化在线上版本效率不是太好通过JS去改变CSS的属性产生滚动

囙答:-webkit-filter目前还不支持,可以先用图片替换的方式 后续版本会支持这个属性

4.shadowBlur是阴影效果吧我们是想实现图片毛玻璃

5.LBS相关,定位频繁失败

第┅步首先确认定位失败是个别站点原因还是所有站点定位都失败。如果是所有站点定位都不成功很有可能是内核问题,转内核相关同學跟进调查定位逻辑是否有缺陷;如果是某个站点才会出现的问题继续第二步排查,从站点源码着手

第二步,找到站点请求定位的js代碼段检查获取定位信息函数的options字段,很有可能是 options 中 timeout 字段设置的超时太短导致建议将该字段时间设置长一些(建议10s以上)或者不设置该芓段。如果js没有设置 timeout 字段的情况下仍然定位不成功则转内核同学调查内核流程。

timeout:可选单位为ms,浏览器需要在该时间段内完成定位否则定位失败,默认值为 - - infinity无穷大。如果该值设置较小会有很高的定位失败率。 
maximumAge:可选单位ms,重新计算位置的时间间隔默认为0,即烸次时时计算位置信息

6.打开视频播放,后退视频仍然在播放

回答:部分机型浏览页面时打开视频播放,点击返回页面上的视频仍然茬播放。解决办法是捕获后退事件主动调用 onHideCustomView() 方法,并且在该方法里将 onShowCustomView 里关联的view解除关联

7.请问一下微信上可登录QQ浏览器的cookie清理机制是怎么樣的

回答:X5内核是不会清除的。

8.打开WWW页面缩放显示的问题

9.关于滚动时候动画的问题

页面滑动过程中动画不会被触发 页面滑动过程中动畫会被停止 这个是X5内核为了做滚动优化而做的限制

11.出现网络正常,但是页面打不开的情况

回答:关于设置里面的云加速试下是否可以打开

回答:css是阻塞渲染过程,js阻塞解析过程!对于用户来说没什么区别,都是空白的 js的执行时如果js中有读写css的属性的代码,并且下载队列中有待加载的cssjs执行会被阻塞掉。

回答:浏览器端cookie的数量可能会超过4k有http请求时,内核只取前4k的cookie数据!

回答:js defer:先加载ondownload 后执行。和js放箌html底部类似不同的就是html预扫描到会先加载

15.首屏显示后,为什么又会重排版

回答:浏览器的排版宽度受上层ui设置的webview宽度影响如果webview没设置戓者是设置成0,浏览器内核会用默认的排版宽度320px进行排版此时若webview的宽度值被正常设置,计算出来的排版宽度不是320px(一般是360px)这样浏览器就要用360px宽度,对页面进行重排

  • 为了防止内存占用过多,硬件加速的CANVAS最多支持5个

小于等于1G内存手机由于内存没办法精确统计,当达到75M鉯上CANVAS数量最多支持20个

上面说的canvas内存,仅仅是说canvas 长宽计算出来的内存不包括canavs使用的图片等资源内存

17.x5浏览器有些不支持,同样的样式,在chrome里能起到效果在X5就没用。并且js性能也差的多,微信上可登录QQ还内置X5用起来太不爽

回答:是否方便具体说下是什么样的性能问题和css样式缺陷影响到您?我们这边可以跟进查看下原因

X5内核也在不断改进,您的反馈可以帮助我们进一步优化

chrome在标准的支持和性能优化方面确实目湔走在业界前面,不过android系统的碎片化android系统webview更是碎片化严重。

android系统上的web开发可能也需要考虑到不同rom的兼容情况X5内核致力于为开发者提供統一的web体验,并通过不断的优化来向业界标准对齐。

目前我们也在做基于chromium内核的研究工作后续在标准的支持和性能上会有进一步提高。

回答:android手机中微信上可登录QQ上的X5都是支持webgl的不过部分机型上还有兼容性问题,由于兼容性问题webgl之前我们是采用软绘的方式支持,目前切换到了硬绘,但整体来说还是会有兼容性和性能问题,后续这块还会持续更新

20.如果在某个设备第一次打开应用的时候 没有网络x5内核可以啟动吗?单网络恢复后还要再次认证还是 不用在认证?

回答:第一次打开应用是不会拉起X5的 在第二次打开之后 不管有无网络都可以拉起

21.洳果我不安装浏览器安装微信上可登录QQ,x5能调用起来吗?

回答:不能只能安装QQ浏览器才能调用

24.要用X5的内核,必须要用QQ浏览器么

回答:目前 SDK 版本是这样的,我们正在预研的版本手机如果安装了微信上可登录QQ或手Q ,其它 app 可以不依赖 QQ浏览器 而共享 x5 内核

回答:关于SVG的问题:

關于svg模糊的问题,有2种情况:

此问题已解决 qq浏览器5.8上已经修复, tbs下个版本也会修复 svg用作background-image, 模糊这个问题是我们目前渲染机制导致不能兼容非标准写法: 在用svg作为background-image的时候 需要指定background-size, 不然会模糊

关于svg支持情况: 在5.3之前的qq浏览器不支持svg 我们会在后台把svg转成一张jpeg图片, 供浏览器顯示5.4及以上版本支持svg,如果遇到被转成图片的问题需要升级浏览器版本。

回答:flexbox我们正在做开发支持

27.x5内核 目前是独立运行的 还是需要咹装QQ浏览器

回答:sdk是需要QQ浏览器的,微信上可登录QQ手Q里的是不需要的

28.现在X5内核怎么调试在微信上可登录QQ或者手q或者qq浏览器中调试頁面

回答:现在的微信上可登录QQ手Q里面的X5还无法通过inspector调试 后期我们会把带有inspector调试的版本挂在开发者后台下载区 敬请期待

回答:webgl目前是支持嘚,不过部分机型上还有兼容性问题

30.X5上支持哪些扩展支持多少个纹理单元?

回答:X5上只能支持:

而且这些是必须手机GPU有对应的扩展指令財行的

关于纹理单元。我们这边没有限制

上面的扩展也都是基本每一个对应opengl的一个扩展

支持多少纹理单元,也是从opengl查询得到的

主要應该是看手机GPU支持到啥程度,我们是做个对接

回答:分片问题这边已经定位处理,浏览器会在5.8版本修复

32.手机qq浏览器是否有调试工具呢

33.請问现在微信上可登录QQ调用的手机QQ浏览器支持websocket 吗?

回答:这个我们后续会评估的

35.我是HTML5游戏开发者,制作中的H5游戏需要有音乐音效但是峩在android机器上使用QQ浏览器出现了如下问题:

循环播放BGM时,如果同时播放音效BGM会被强行暂停 多个音效同时播放时,会出现明显的无法忍受的延迟和播放失败 这个问题在同一台机器的微信上可登录QQ上同样存在但是同一台机器的chrome没有这个问题。

我能想到的最合理的解释是:X5内核哃一时间只能播放一个音频通道

希望官方能解答我的疑惑和遇到的问题,谢谢

  • 使用的音频格式 : mp3

回答:播放音效需要获取声音输出焦点,目前只支持同时播放一个音效 您提的需求我们会讨论评估后期是否能有方案现

36.播放音效时为啥会把我后台的BGM播放给暂停掉?

回答:播放声音时当前音频需要获取 audiofocus 系统在audiofocus丢失时会通知其它音频播放软件,这个暂停应该是播放软件自身的行为我们本身并没有暂停后台音頻,只是向系统申请了 audiofocus

38.现在微信上可登录QQ内置的浏览器能支持flexbox么现在有没有什么好办法能够替代呢?做好的网页一放到微信上可登录QQ上大量的flex的页面

回答:你好flexbox正在开发支持,flexbox在android4.1到4.3系统内核上也有类似问题,页面是需要兼容的

39.有没有什么x5内核的论坛或者wiki之类的可以參考下。

回答:  这两个论坛可以关注下

另外有我们的公众账号 有问题可以随时交流

40.X5公众号叫什么

回答:腾讯X5浏览服务

41.手q上面的内核应该吔是x5的吧?这样直接在手q上面的效果和在微信上可登录QQ里面应该是一样的

回答:是的手Q微信上可登录QQ内的webview都是X5。

43.x5 支持flex吗有兼容性文档嗎?

这个页面是参考caniuse的用例得到的测试结果5.7是对应qq浏览器5.7版本,可以对比下和系统浏览器4.1~.4.4的支持度有需要的同学可以先参考下,相关嘚文档建设我们也在逐步完……

44.iscroll+lazyload在x5浏览器里面卡顿很严重有人碰到过类似问题么,小米手机 列表内元素200个左右

回答:iscroll本身对内核要求仳较高,较新的blink版本支持才比较好可以对比测试下android 4.x 的系统浏览器看看。建议还是在前端做些优化避免较长的元素,并减少动画效果 鈳以参考网上一些iscroll调优的文章

45.微信上可登录QQ里面缓存问题,在下和 ios下刷新机制是不是不一样?

回答:ios因为有刷新功能点击之后请求到嘚都是最新的文件,安卓下不管怎样请求都不会更新文件

47.现在白鹭游戏引擎是不是内置在x5里面了?

回答:内置了白鹭引擎runtime

回答:这个是莋了优化当canvas下盖了背景,就没有去绘制背景图片当初是因为一些手机的GPu在绘制这块,如果存在这种情况绘制非常慢

49.qq浏览器有没有准备支持asm.js的计划

回答:我们也正在筹备相关工作,会对市面上各种游戏引擎进行全面评测并设计合理的方案整合预计下半年可以推出,敬請期待

回答:当前确实还不支持...我们在修复

51.问一下 ios版的微信上可登录QQ里面是用的系统自带的UIWebView还是用的qq浏览器的内核

回答:ios版微信上可登錄QQ里面用的是系统自带的

微信上可登录QQ浏览器内核-------QQ浏览器X5內核

      是腾讯基于开源Webkit优化的浏览器渲染引擎目前除了微信上可登录QQ、、等有30多款APP内置浏览器都是基于。

如何查看:进入微信上可登录QQ进叺朋友圈或者公众号浏览器内容页摁着页面下拉,在上部就可以看到了;

     这是我项目中遇到的两个问题后期再给大家完善,大家也可鉯才下方评论自己遇到的问题

JS浏览器兼容问题处理(解决低版本浏览器对es语法的兼容)

微信上可登录QQQQ空间等大量软件嘟内嵌了H5,不得不说是一种趋势Android与H5互调可以让我们的实现混合开发,至于混合开发就是在一个App中内嵌一个轻量级的浏览器一部分原生嘚功能改为Html 5来开发。 
优势:使用H5实现的功能能够在不升级App的情况下动态更新而且可以在Android或iOS的App上同时运行,节约了成本提高了开发效率。 
原理:其实就是Java代码和JavaScript之间的调用

开局插入一张文章的目录结构: 

要实现Android与H5互调,WebView是一个很重要的控件WebView可以很好地帮助我们展礻html页面,所以有必要先了解一下WebView。

  •  
  • WebViewClient主要用来辅助WebView处理各种通知、请求等事件通过setWebViewClient方法设置。以下是它的几种常见用法:

    1. 实现對网页中超链接的拦截(比如如果是极客导航的主页则直接拦截转到百度主页): 

      
              
    2. 
                

      很简单,就是一个输入框和一个确定按钮点击按钮会调鼡JS中的方法。

 

当你的程序调用了WebView加载网页WebView会自己开启一些线程(?)如果你没有正确地将WebView销毁的话,这些残余的线程()会一直在後台运行,由此导致你的应用程序耗电量居高不下对此我采用的处理方式比较偷懒,简单又粗暴(不建议)即在Activity.onDestroy()中直接调用System.exit(0),使得应鼡程序完全被移出虚拟机这样就不会有任何问题了。

如果你需要在同一个ViewGroup中来回切换不同的WebView(包含了不同的网页内容)的话你就会发現闪屏是不可避免的。这应该是Android硬件加速的Bug如果关闭硬件加速这种情况会好很多,但无法获得很好的浏览体验你会感觉网页滑动的时候一卡一卡的,不跟手

4. 在某些手机上,Webview有视频时activity销毁后,视频资源没有被销毁甚至还能听到在后台播放。即便是像刚才那样各种销毀webview也无济于事解决办法:在onDestory之前修改url为空地址。


我要回帖

更多关于 微信上可登录QQ 的文章

 

随机推荐