微信开发的黑魔法

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。

 

posted @ 2015-03-26 16:20  grainy  阅读(440)  评论(0编辑  收藏  举报