微信开发的黑魔法
1. 内置了 zepto.js (我明天再测试下具体是否为 zepto.js,$ 和 相应的 api 是能用的)
---------
微信4.5以及之前的版本才是如此,这个版本基本销声匿迹了,不用关注了。
2. target="_blank" 不会打开新窗口
---------
任何一个app的webview都没有这个功能吧?
3. ifame 问题待测试
---------
这又什么问题?
4. video 设置 z-index 也无法覆盖问题待测试
---------
和微信无关,如果你发现z-index在微信中不生效,同样的代码在你同样手机的safari上应该也是不生效的。
5. title 修改不生效问题待测试
---------
这个的确,但是有黑魔法可以修改,不知道最新版本是否还可以。请自行测试
var $body = $('body')
document.title = ‘title’
// hack在微信等webview中无法修改document.title的情况
var $iframe = $('<iframe src="/favicon.ico"></iframe>').on('load', function() {
setTimeout(function() {
$iframe.off('load').remove()
}, 0)
}).appendTo($body)
IOS 6、7、8 ,安卓 4.x 等,系统版本不同,调用的 浏览器内核 分别是什么情况?
---------
和系统相关,微信并没有设计浏览器内核。
看到一条消息: 安卓4.4以下对sdk只提供webview,之后有可选的chromeview。iOS 似乎8之前只有uiwebkit,之后有Safari 内核。 是这样吗?
---------
微信6.1版本以后,会自带QQ浏览器的X5内核,即使你没有安装QQ浏览器。
【以上转自知乎http://www.zhihu.com/question/27849091?sort=created&page=1】
我在开发的过程中遇到了需要修改微信title的问题。直接使用document.title = "title" 是不能够对微信的title进行修改的。在网上查资料发现了,一段黑魔法。试了试,果真好使。但是具体的实现原理还不清楚。
var $body = $('body') document.title = ‘title’ // hack在微信等webview中无法修改document.title的情况 var $iframe = $('<iframe src="/favicon.ico"></iframe>').on('load', function() { setTimeout(function() { $iframe.off('load').remove() }, 0) }).appendTo($body)
开发中还遇到了一个坑就是,pm想要在微信的分享页面中,有个下载的button。但是,这个button在ios中是无法跳转至appstore的。安卓可以。
我发现的解决办法就是,
1.微信直接扫一扫,可以实现下载button的功能。
2.将下载链接转换成二维码,添加到分享页面中,长按识别二维码,就能跳转到appstore。