1

第一次做和手Q对接的项目,虽然只是做一个静态页面,但是遇到的问题无数,分享出来,做个记录。
项目需求,做一个静态页面,为APP导流,要求记录QQ号,为后续分析准备,页面访问量使用MTA统计,页面要能够分享。

一:手Q里面的H5页面不支持正则

考虑到只要收集QQ号码,QQ号码存在cookie里面,用js直接获取,然后异步上报回服务端,基本就搞定。
找到手Q团队WEB端的研发咨询怎么获取QQ号,给我了一段解析的代码。
代码如下:

uin = uin ? String(uin).replace('o0', '') : '';
uin = uin ? String(uin).replace(/o+/g, '') : '';

看来连正则都不用自己写了,直接拿去用。

编码完成后,上传服务器,在本地浏览器中测试一切正常,但是放到手Q中,怎么也获取不到QQ号码,太奇怪了,抓包后分析,js只执行了替换'o0',并没有执行下面的正则替换。

没有办法只能重新修改,换成服务器解析,总算搞定,其实还有一个问题,后续再说。

二:每个APP的分享都有一套自己的API

一开始就使用了手Q里面的分享。

<meta itemprop="name" content="标题">
<meta itemprop="description" content="描述">
<meta itemprop="image" content="图片">

从手Q里面分享出去,没有任何问题但是如果是二次分享,比如,手Q分享到微信,再从微信分享到微信,这个时候就需要使用微信的分享API。

三:微信分享到QQ的API网上几乎没有

微信分享的API是我们前端给的,里面有发给好友,朋友圈,微博,唯独没有分享到QQ。用Google查了半天,一直没有找到,只能根据前面的结构,猜测分享到QQ怎么写,运气还不错,几次之后竟然对了。

// 发送到QQ
WJ.on('menu:share:qq', function () {
    WJ.invoke('shareQQ', config_share, function (res) {
    });
});

四:8位以下的QQ号获取不到

使用问题一里面的正则,能够正常捕获,9位以上的QQ号,内侧的时候分析数据,发现8位以下的QQ都出现了前面有0的情况。
查询文档后发现,腾讯的QQ号规则是o+10位,不满10位的自动补0,所以前面的正则捕获不到,8位以下的。

五:手机的分享API,在iOS系统下获取不到标题

试运行阶段,发现iOS下分享总是获取不到标题,但是安卓下却是正常的,抓包后发现,iOS下分享的时候自动抓取<title>里面的内容,并不会去读取name的内容,解决办法,保持name和title的内容一致。

六:在QQ上发送链接,抓取的图文描述一直不正确

正常情况是这样的
图片描述

但是我们发出去后抓取的是这样的
图片描述

QQ上抓取网页,第一次抓取后会一直缓存一段时间,我们有一个预发布环境,网址是和正式环境一样,但是只能内网访问,所以在QQ上传播之后,QQ抓取的是外网的,自然出现了错误。找到手Q的团队帮忙清理了下缓存,再次在QQ上发送链接一切正常。

七:手Q和PC的QQ不是一个部门

原以为这样就结束了,我们之前一直在手机上调试,一切正常,但是一次偶然的机会把链接发送都PC版的QQ上,发现链接依旧是错的,咨询手Q的团队,才知道PC版的QQ是另外一个团队。

八:链接的大小写

我们给出的链接格式是AbbCC的样子,正常配置的是没有问题的,但是有的时候手Q会帮我们推广,链接的样子会变成Abbcc或者abbcc,通过MTA分析出来,还好我提前做了处理,这个问题算是躲过了。

问题九:网页内部的APP下载链接可能会被拦截

在运行了一段时间之后,突然某天发现APP的下载链接不能下载了,抓包之后,发现被拦截了,咨询手Q团队,手Q的推广链接有几种模式,修改运营配置后,正常下载。


binphp
243 声望5 粉丝