微信公众号开发遇到的问题一

问题一:video脱离文档流

在微信里嵌入视频播放,我想大家都会想到html5的video标签,嵌入一个视频播放,很简单,但是在微信中,video标签会被微信进行修改,微信的x5浏览器不支持html5的标准格式
微信为什么要这样做了,在微信中的视频播放完后都会插入广告。要做公众号这点只能任由微信这样做了。
但是这样也就算了,微信开发中video都会脱离文档流,浮动到整个页面的最上层,特别当播放完后,这个video都不受控制了,上下滑动页面,视频会上下抖动,会遮住别的标签内容。

关于这个问题的解决方案,目前我想到的有两种:

  1. 接腾讯视频API,这样会很好的兼容x5内核浏览器;
  2. 当页面滚动重写video(很扯淡的解法,但是没办法,有时还是很好用)。
问题二:微信中单页应用更换title问题

当我们在微信开发单页应用的话,因为微信中已经有了header,这时我们在写入一个header话会感觉别扭,可是选择去掉header的话,我们不同的页面需要手动去更换title标签里的值来改变微信header中title值。

这种做法在android手机是没有问题的,但是在ios手机中就不行了。微信初次加载页面后就不会再监听title的change了。

这类问题网上有一种解决方法就是使用隐藏的iframe标签来骗过微信,使ios中title改变。

代码我就直接拷贝网上的了:

1
2
3
4
5
6
7
8
var $body = $('body');
document.title = 'new title';
var $iframe = $("<iframe style='display:none;' src='/favicon.ico'></iframe>");
$iframe.on('load',function() {
setTimeout(function() {
$iframe.off('load').remove();
}, 0);
}).appendTo($body);
问题三:微信jdk开发引入脚本使用https问题

我们使用微信API,前台需要引入脚本,因为苹果以后都要使用安全的https,所以这次开发我看文档用https引入微信的脚本,可惜遇到一个问题没把我坑死。

现象,当初次加载的时候,我可以获取到config,签名正确,可以使用微信的API,但是当我再次进入页面的时候,签名就一直报错了。代码执行都是一样的,最后问题就是出现在了https上面。换成http后,问题就解决了,所以https在微信如何使用,还是慎用比较好,即使微信提供了https引入,但是在找到原因和方法前还是避免这个坑比较好。