qq浏览器使用电脑版微信内置浏览器,点击公众号文章链接内容无法正常显示,有人的,LZ不要着急

昨天下午,腾讯 QQ 浏览器对外公布了一款尚处于封闭内测阶段的产品——“微信电脑版”。
据 QQ 浏览器团队称:“微信电脑版” 由 QQ 浏览器和微信团队合作开发,是一款基于 QQ 浏览器的插件,扫码登陆后联系人列表即出现在浏览器左侧,用户可以在 PC 端管理微信内容。
之前,微信在 Web 端推出了,支持简单的聊天、截屏、文件图片传输功能。对于那些希望在 PC 端使用微信的用户来说,这样的功能显然不够。微信电脑版功能会更多一些:
1)消息提醒:安装插件后,微信图标会出现在 QQ 浏览器工具栏上,并提示新信息
2)悬浮面板:聊天面板悬浮在网页之上,可将其固定
3)拖拽分享:浏览网页时,可选中文字、图片、视频,直接拖拽到聊天面板中进行分享
4)一键隐藏 / 显示:按 “老板键” F4,可以一键控制 “好友列表侧栏” 及 “聊天面板” 的显现和隐藏
目前,“微信电脑版” 还不支持购买的表情在手机端和 PC 端的同步、公众号及好友分组、查看历史消息、浏览朋友圈信息以及从 PC 端发送语音等功能。出于对用户隐私的考虑,“微信电脑版” 也不支持自动登录。
此前,坊间一直有疑问为什么微信不推出相应的 PC 客户端。这次 QQ 浏览器和微信团队合作开发 “微信电脑版”,将 PC 版微信与 QQ 浏览器绑定,或是希望藉由微信 6 亿用户为 QQ 浏览器带去流量。
“微信电脑版” 相当于是基于原来的微信网页版,优化了微信在 PC 端的用户使用体验,现在尚处于封闭内测阶段,16 号时会向公众推出限量的内测名额。原创文章,作者:coldsummer17“看完这篇还不够?如果你也在创业,并且希望自己的项目被报道,请告诉我们!”
分享到coldsummer17读者36氪 , 让创业更简单创业者们,如果你或你的朋友想被36氪报道,请狠戳这里&&&&
赞助商链接
置顶若无法达到500万台销售目标,黑莓或退出手机市场黑莓手机CEO希望每年能够销售500万台手机,如果无法达到这项目标,黑莓手机可能将退出手机市场。据悉,对于目前年销量仅为80万台的黑莓公司,销售目标的达成被寄予在了即将推出的BlackBerry Priv身上。据称,这款安卓作为操作系统的手机目前与Samsung Knox手机相若,将延续黑莓的安全技术,配备更优的电池功能、触屏设计、物理键盘等。置顶大众美国公司CEO称排放门系软件工程师所为大众公司进行了其因为排放门丑闻而进行的第一次国会听证会。席间,大众美国分部的CEO Michael Horn否认众议院能源与商务委员会提出的关于大众对EPA排放测试使用“抵御装置”知情的盘问,并表示该装置是由于其内部的一些无聊的软件工程师的个人行为,绝非公司的决定。置顶中兴华为一级供应商深圳福昌宣布倒闭,欠债 4 亿中兴华为一级供应商深圳福昌集团公司今天宣布倒闭,初步公布欠外债务4个多亿,数百供应商货款打水漂,数千工人在维权。
Twitter推出新的视频广告服务创作者可以上传视频至Amplify平台,然后广告商家依据需求选择在创作者上传的视频中进行付费广告投放,Twitter将在的创作者的广告收入中抽取30%的费用。目前包括Fox, MTV, FX, WWE, Funny or Die, USA Today, BuzzFeed, Time在内的多家媒体都加入了Twitter的该项推广项目。爱奇艺起诉搜狗索赔200万元,称搜狗不正当竞争过滤爱奇艺广告据人民网报道,爱奇艺公司称以不正当竞争将搜狗公司和搜狗科技发展公司诉至法院,要求判令搜狗公司和搜狗科技发展公司立即停止不正当竞争行为、消除影响并赔偿经济损失200万。日前,北京海淀法院受理了此案。
Trove推出个性化定制3D打印金银首饰Trove将用3D打印机制作首饰模型,然后再将稀有金属金或者银达到熔点后灌入首饰模型。目前Trove已经推出了30款首饰造型用户可以通过该30款造型创造出上千种的个性化设计。Cortana或将提前在Xbox One上使用据了解,搭载windows 10系统的Xbox One 应该在11月发布。此前各方消息认为Cortana最早也是在2016年初才能Xbox One上运行,但据Reddit用户爆料,说Cortana功能已经在新Xbox One体验展 (NXOE) 上出现。亚马逊将在西雅图商场设立实体书店据称,亚马逊的实体书店可能将出现在西雅图大学村的一家商场里。此外,亚马逊已经开始在当地开始以18美元每小时的薪酬招募图书销售员。届时,可能亚马逊在实体店内展示的不仅是纸质图书,而是和苹果和微软商店一样,在店内展示他们的电子阅读器Kindle和Fire系列产品。在线视频分享网站Vimeo将投拍原创剧集该次投资的剧集为《The Outs》第二季、《Darby Forever》和一部原创喜剧的特辑。近日,主流在线流媒体包括Netflix, Hulu, Amazon Prime, 甚至是传统行业的HBO 和Showtime都开始投资自己的原创剧集。据悉,制作原创剧集不仅是一种吸引观众的方式,而且能够为流媒体公司缩减支付给视频版权公司的高额版权费。消息称学科网获好未来 3000 万美元战略投资,与凤凰传媒达成合作据称,学科网将在明天的发布会中介绍相关战略规划。学科网隶属凤凰传媒集团,成立于 2004 年,提供考卷、题库等资源。据称,学科网已经与 3 万多所学校达成合作,提供教学资源超过 425 万套,累计用户 1500 万,80% 为老师。此前,学科网曾在今年 8 月与魔方格达成合作推出作业平台,9 月切入教辅出版市场。索尼宣布旗下子公司半导体解决方案公司总裁人选索尼公布了其将成立的索尼半导体解决方案公司总裁人选,现任索尼公司部件解决方案业务集团副总裁清水照士将出任该公司总裁。同时索尼还宣布,目前负责生产的索尼半导体公司和设计的索尼LSI设计公司,将成为索尼半导体解决方案公司的下属子公司,预计半导体解决方案公司将于日运营。苹果公司下架部分问题软件苹果在周四表示,已经撤除了软件商店上的一些可能涉及到侵害用户个人信息安全的手机软件。据苹果发言人称,此类手机软件通过安装证书将用户的信息暴露给第三方。苹果将在近期发布支持页面来帮助用户删除手机上的问题软件。Google称智能手机搜索量首次超过电脑Google搜索高级副总监Amit Singhal称,目前智能手机的搜索量已经超过了电脑。据悉,Singhal并没有透露详细的搜索量,并称,这个数据不包括平板电脑以及大于6寸的智能手机。亚马逊推出了手工品交易平台,对抗Etsy亚马逊周四在推出了手工品交易平台,名为“Handmade at Amazon”,平台中可交易手工制作的珠宝、家庭装饰品以及其它手工业者制作的小摆设品。亚马逊希望借此与手工艺品电商Etsy进行市场竞争,新Handmade商店拥有来自60个国家的8万款商品。汪峰创立的fiil耳机开启众筹根据众筹的信息,用户支付 2999 元可以得到 fiil 耳机一台、汪峰签名 CD 一张和 fill 发布会前排就坐机会。而获得单张的发布会门票则需要支持 1999 元。另外用户也能 1 元参加耳机和发布会门票抽奖。发布会将于 10 月 20 日在北京召开,本次众筹目标 10000 元,目前已经募集 7131 元。
美国用户将可在星巴克使用Apple Pay这意味着任何配备NFC技术的苹果设备将可以通过Apple Pay在星巴克店内支付。据Apple Pay副主席Jennifer Bailey称,目前苹果计划在2016年将Apple Pay推广到7500家门店。Netflix上调北美区订阅费用Netflix宣布北美地区标准订阅的月费自将涨价1美元,月费从原来的8.99美元调整为9.99美元。此次价格调整将分为两步,新用户立刻调整,老用户将从2016年10月开始调整。iPhone 6s 开始全球第二波售卖目前苹果 iPhone 6s 和6s Plus开始了第二波发售。此次发售将覆盖40多个国家。自9日起,用户可以在当地的苹果店,运营商以及苹果授权的经销商购买到最新的苹果手机。第三、四、5波发售将分别于10月10日,16日及23日开始。苹果公司表示,新款手机将在年底在130个国家销售。北美区PS4降价索尼官方表示,美国区和加拿大区PS4永久性降价,降价后价格为349.99美元和429.99加元。而此前的售价为399.99美元,降价幅度高达50美元。此前,PS4在亚洲区也进行了全线降价。Elon Musk 称不看好苹果拓展电动汽车业务Tesla CEO Elon Musk近日在访谈中表示苹果进入电动汽车行业的举措并不明智。首先,他们雇佣了在Tesla并没有做出任何成就的前雇员,并将其称作“Tesla的墓场”。再者相较于手表和手机,汽车行业的复杂程度远高于苹果的想象。网传,苹果将在2019年推出苹果电动汽车。
36氪为你推送和解读最前沿、最有料的科技创投资讯36Kr股权投资汇集行业内最优质创业项目的股权投资平台36kr融资聚集15家顶级投资机构的专业互联网融资平台氪空间聚集全球最优秀的创业者,项目融资率接近97%,领跑行业【技术文章】微信公众平台开发教程新手解惑40则
发表于 10:35|
摘要:由CSDN和《程序员》杂志联合主办的2014年微信开发者大会将于8月23日在北京举行。组委会已经邀请到了柳峰担任此次大会的演讲嘉宾,他将带来《智能客服与LBS开发的“坑”与解决之道》的主题分享。
【编者按】由CSDN和《程序员》杂志联合主办的
将于8月23日在北京举行,邀请了来自于一线的微信开发商技术负责人或资深工程师从企业应用开发高级篇、智能客服与LBS、微信支付、微信上的HTML5社交应用、微信小店开发等角度为与会者带来实战分享(
)。目前报名处于优惠票价阶段,通过申请加入CSDN CTO俱乐部即可享受8折购票价格(票款中均含午餐),在前完成付款的同学还将免费获赠微信开发图书一本(两选一,活动现场发放)。&值得一提的是,CSDN优秀博主、畅销书《微信公众平台应用开发:方法、技巧与案例》的作者柳峰受邀做本次活动讲师之一,演讲主题《智能客服与LBS开发的“坑”与解决之道》。他在CSDN博客中(
)撰写了几十篇+的微信开发技术文章,多篇访问量都在3万+,以下这篇《
》摘自他的博客。
全文如下:
笔者在CSDN博客频道推出微信公众平台开发教程之后,接触了许多公众平台开发爱好者,也帮助他们解决了许多实际的问题,当然这其中有很多问题都是重复的,因此,笔者将这些问题及解答整理出来,以帮助更多初学者少走弯路。
1、订阅号与服务号的主要区别是什么?
订阅号每天能群发一条消息,没有自定义菜单及高级接口权限;服务号有自定义菜单及高级接口权限,但每月只能群发一条消息。
2、到底该申请订阅号还是服务号?
申请哪种类型的公众账号,主要取决于账号的用途。服务号主要面向企业和组织,旨在为用户提供服务;订阅号主要面向媒体和个人,旨在为用户提供信息和资讯。
3、订阅号是否支持编程开发?
不管是订阅号,还是服务号,在高级功能中都有编辑模式和开发模式,订阅号也支持编程开发,同样也能与企业系统对接。
4、为什么申请的公众账号没有高级功能?
公众账号注册后,要经过微信团队的审核,在审核未完成之前不显示高级功能。一般审核会在15个工作日内完成,如果一两周没审核通过均属正常现象,还请耐心等待。
5、现在订阅号能否申请自定义菜单?
不能。那为什么有些订阅号有自定义菜单?这是历史遗留问题。日,随着微信5.0的发布,公众账号被划分为订阅号和服务号,所有的公众账号都被默认为订阅号,并且有一次转服务号的机会,许多在此之前申请到自定义菜单的账号并没有转为服务号,所以就存在一些订阅号有自定义菜单,例如:36氪、蓉城先锋、天府之光等。
补充:日,公众平台针对订阅号做了重要更新。政府、传统媒体、明星等非企业性质的订阅号可以申请微信认证,通过微信认证的订阅号可获得自定义菜单接口权限。
6、现在申请的订阅号能否转服务号?
不能。只有日微信5.0发布以前申请的订阅号才有一次转服务号的机会,在此之后申请的订阅号不能转服务号。
那如果真的有转服务号的需求怎么解决?只能重新申请一个服务号。7、目前一个身份证号能申请几个公众账号?
8、使用一个公司的材料能申请多少个公众账号?
没有限制。
9、在注册公众账号时,提示“你注册的公众号名称存在侵权风险,请先完成微博验证”,这是什么意思?
公众平台对一些可能存在侵权的关键词进行了保护,例如:“微信”、“移动”、“搜狐”等,如果注册的公众账号名称中包含这类关键词,提交时就会提示存在侵权风险。
遇到这种情况时,要么避开这些关键词换个名称注册,要么就根据提示先完成微博验证再继续注册。
10、个人能否申请服务号?
不能,个人只能申请订阅号。服务号的运营主体必须为组织,例如:企业、政府、其他组织等。
11、公众账号的名称可以重复吗?
公众账号的名称可以重复,不用担心被他人抢注。
12、公众账号的名称可以修改吗?
公众账号名称一经设置无法修改,公众平台没有提供账号改名的功能,因此在注册账号时取名应谨慎。
13、微信认证与微博认证有什么区别?
微信认证是针对于服务号,微博认证是针对于订阅号。也就是说,订阅号只能申请微博认证,服务号只能申请微信认证。
14、是否需要粉丝数达到500才能申请微信认证?
只要是服务号都可以申请微信认证,与粉丝数无关。只有订阅号申请微博认证才要求粉丝数必须达到500。
15、编辑模式与开发模式能够同时使用吗?
不能,这两种模式是互斥的,开启编辑模式就必须关闭开发模式,开启开发模式就必须关闭编辑模式。
16、现在用的是编辑模式,以后还可以选择使用开发模式吗?
可以,任何时候都可以根据需要切换到另外一种模式。
17、编辑模式切换到开发模式之后,在编辑模式中设置的内容还在吗?还有效吗?
在编辑模式中设置的内容,只要自己不手动删除,会永远存在的,但这些设置在开发模式下无效。
18、开发模式的菜单为什么突然消失了?
菜单不会无缘无故的消失,如果开发人员没有手动删除,那一定是有人开启过编辑模式引起的。请注意:开启编辑模式后,在开发模式下创建的菜单会被删除。
19、使用开发模式需要具备哪些条件?
1)至少掌握一门编程语言;2)具备公网服务器资源。
20、微信公众平台支持哪些编程语言?应该如何选择?
凡是支持动态Web开发的编程语言都能够用于微信公众平台开发,例如:Java、PHP、ASP.NET、Ruby、Python、Note.js等。
开者人员应该选择自己最擅长的编程语言进行开发,如果都不擅长怎么办?如果都不擅长,建议选择Java或PHP,原因在于网上关于微信公众平台开发的资料大都是基于Java和PHP的,开发起来要相对容易。
21、没有公网服务器资源怎么办?
1)免费:可以考虑使用云环境,例如,BAE(Baidu App Engine,百度应用引擎)和SAE(Sina App Engine,新浪应用引擎)。
2)付费:可以考虑租用VPS(Virtual Private Server,虚拟专用服务器)或阿里云的云服务器。
如果仅是为了学习微信公众平台开发,个人建议使用BAE。
22、如果想使用Java进行微信公众平台开发至少需要掌握哪些内容?
至少需要掌握Java基础知识、JSP、Servlet、Javabean和JDBC(操作数据库)。
23、公司的项目大都是基于SSH框架进行开发,能使用SSH开发微信公众账号吗?
当然可以,前面说过,凡是支持动态Web开发的编程语言都能用于微信公众平台开发。其实,Struts本质上也是Servlet。
24、柳峰老师,可以给我一份微信公众平台项目的源码吗?
想要源码的朋友请您免开尊口,我认为这不是一种很好的学习方式和态度,而是一种浮躁的表现。博客中的教程已经讲的很详细了,并且贴出了所有代码(一行也不少),如果这样还不愿意花点时间去理解、消化和动动手,我也无能为力!
PS:曾经也有一些开发者、创业团队和公司提出要买小q机器人(xiaoqrobot)的源码,有的开价是5位数,但都被我拒绝了。相比之下,我更愿意把小q机器人的完整实现过程写成一篇篇技术文章免费分享出来,带动更多的开发者加入到微信公众平台开发阵营!
25、公众账号能够通过程序主动向关注用户发消息吗?
截止目前,公众平台还没有开放主动向用户发消息的接口。为什么招行可以?我前面说的是没有“开放”主动发消息的接口,并不代表没有该接口。如果贵公司也有招行的实力,我相信你也有办法申请到;如果没有这样的实力,那就不要费事了。
26、订阅号使用开发模式能够向用户回复图片、语音和视频消息吗?
可以,虽然订阅号没有多媒体文件上传接口权限,无法通过上传多媒体文件到微信服务器获取MediaId,但仍可以变相得到MediaId,同样可以实现回复多媒体消息。变相的实现方法是将用户发送给公众账号的多媒体消息的MediaId记录下来,给用户回复多媒体消息时可以使用。
27、订阅号使用开发模式能够向用户回复
音乐消息吗?
28、音乐消息包含参数ThumbMediaId,没有高级接口权限的公众账号无法获得ThumbMediaId,怎么回复音乐消息?
ThumbMediaId不是音乐消息的必须参数,给用户回复音乐消息时可以不传ThumbMediaId参数,类似下面这种示例格式也能正确回复音乐消息:
&ToUserName&&![CDATA[toUser]]&&/ToUserName&
&FromUserName&&![CDATA[fromUser]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[music]]&&/MsgType&
&Title&&![CDATA[TITLE]]&&/Title&
&Description&&![CDATA[DESCRIPTION]]&&/Description&
&MusicUrl&&![CDATA[MUSIC_Url]]&&/MusicUrl&
&HQMusicUrl&&![CDATA[HQ_MUSIC_Url]]&&/HQMusicUrl&
29、订阅号与非微信认证的服务号能够向回复哪些类型的消息?
在开发模式下,订阅号与非微信认证的服务号只能向用户回复文本消息、音乐消息和图文消息。
30、为什么项目代码与柳峰老师教程中的一样,发消息给公众账号却没有任何响应?
这是我写微信公众平台开发教程以来,初学者给我反馈最多的问题。可以肯定的是,至今为止,我博客中贴出的所有代码全部都能正常运行,没有任何问题。遇到上面这种问题大都是由以下三种情况引起:
1)在公众平台开发模式下,成为开发者却忘记开启开发模式,即开发模式的开关是关闭状态。
2)通过上传WAR包的方式部署应用时,导出的WAR包中没有包含JAR。建议初学者直接将项目需要的JAR拷贝到项目中,这样通过开发工具导出的WAR包就会包含JAR。
3)项目中引入的第三方JAR包与笔者教程中使用的JAR包版本不一致。
31、为什么自定义菜单创建成功了,在微信客户端的公众账号上却不显示?
由于微信客户端缓存的原因,自定义菜单创建成功后,需要24小时以后才能显示出来。开发者在测试时,可以尝试取消关注公众账号后再次关注,这样能立即看到最新的菜单效果。
PS:菜单更新、菜单删除也会有缓存。
32、如果要更新公众账号的自定义菜单,需要先将原有菜单删除吗?
不需要,直接执行菜单创建方法即可,每次创建菜单会自动覆盖以前的菜单。
33、什么是微网站?
微网站是新瓶装老酒,被一些搞营销的人给神化了,以至于很多开发者都在问什么是微网站,如何开发微网站。微网站本质上就是以微信浏览器为入口的手机网站(Web APP),能够兼容Android、iOS、WP等操作系统。开发微网站用到的技术与开发普通网站一样,都是基于HTML(HTML5)、CSS、Javascript等,所以有普通网站开发经验的开发者,完全有能力开发微网站。
PS:初学者以后再看到什么以“微”开头的新名词,例如:微商城、微客服、微统计,直接把“微”字去掉或者把“微”当作是“基于微信的”就不难理解了。
34、什么是模拟登录?模拟登录微信公众平台
能够干什么?
模拟登录指的是通过程序模拟用户在浏览器上的操作。例如,我们通过浏览器访问微信公众平台,先要登录,登录成功后能够查看用户信息、给用户回复消息、群发消息等,其实通过程序也能够实现这些操作。
PS:对于模拟登录,官方并没有明确表态是允许还是禁止,请谨慎使用,万一哪天被封号就不划算了,也没法向关注你公众账号的用户交待。
35、微信认证是如何收费的?
服务号申请微信认证需要支付300元/次的审核服务费用,无论最终的认证审核通过与否,都需要支付这笔费用。微信认证成功后,认证的有效期是一年,在有效期快结束时还要再次申请微信认证。
36、微信支付如何申请?
截止目前,微信公众平台仍未开放微信支付权限的申请。为什么广东联通、小米手机这些账号有微信支付权限?这些公司大都与微信有着合作关系,提前享受这些权限一点也不奇怪。
37、临时带参二维码有哪些应用场景?
通过微信扫描二维码登录微信网页版,就是临时带参二维码的典型应用场景。
38、微信公众平台开发一般如何调试?
微信公众平台提供的
旨在帮助开发者检测调用公众平台接口时传入的参数是否正确,这款工具对开发者的帮助其实并不大。对于调试本地运行的公众账号后台程序,这里给读者推荐两种方法:1)使用“微信开发调试小工具”,该工具支持在本地调试,工具的用法及下载请访问:
,通过路由器端口映射,可以将自己的电脑变成一台外网服务器,这样本机运行的公众账号后台程序就能直接与微信服务器进行交互了。
39、为什么项目在本地运行正常,也能获取到数据,部署到服务器上之后公众账号没有任何响应?
遇到这类情况,请读者尝试从以下几个方面排查问题:
1)检查项目在服务器上是否部署成功,可以尝试方法以前能够正常运行的功能模块,看能否正确响应,以便缩小问题范围。
2)检查项目中通过URL传递参数时,如果传递特殊字符(例如:中文、+、&等),是否对特殊字符进行了编码。
3)检查程序的处理是否超时,如果超过5秒,公众账号不响应。
4)检查返回的文本消息、图文消息是否超过限制(文本消息长度&=2048字节,图文消息条数&=10条),若超过限制,公众账号不响应。
5)公众账号不响应也有可能是微信公众平台自身故障导致。
40、为什么URL在浏览器能访问,放到微信上却不能访问?
请检查URL中是否包含特殊字符,例如:中文、+、&等,PC上的浏览器通常都会对URL中包含的特殊字符自动编码,但有些浏览器不会。
为了保证所有的浏览器都能正常访问URL,请务必对URL中包含特殊字符显示编码,显示编码的意思是代码中能够明确看出编码方式是UTF8、GB2312或者其它。例如像下面这样:
// 采用操作系统默认的字符集进行编码,在不同的操作系统上表现不一致,不推荐
java.net.URLEncoder.encode(chinese);// 显示编码,推荐用法
java.net.URLEncoder.encode(chinese, "UTF-8");PS:很多初学者都认为只有URL中包含中文时才需要编码,结果导致OAuth2.0授权接口、通过ticket换取二维码接口总是调用不成功。
OAuth2.0授权接口中的回调地址redirect_uri中包含大量特殊字符必须进行编码,通过ticket换取二维码接口中的ticket中可能包含+号也要进行编码。
送给初学者一条中肯的建议:不要总是怀疑微信公众平台的接口或者有经验的开发者分享的程序代码有问题,最先应该怀疑自己写的程序有问题,这样才有助于发现问题,从而解决问题。请相信:一套久经考验的平台、程序被初学者发现BUG的情况并不多见。欢迎大家到现场与柳峰深度沟通。目前,
(持续关注
更新)。另外,主委会还开设了
,欢迎技术精英自荐和互相推荐,也可以直接联系
。(持续更新)
此外,主办方还特别开设了
)现在就去
。微信开发者QQ群:(已满)和微信开发者② QQ群:,欢迎加入交流。
相关阅读:
,了解更多研发资讯,参与互动讨论;当然您可以向我们推荐更多有趣、有质量的文章。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章页面导航:
→ 正文内容 Javascript限制网页只能在微信内置浏览器中访问
Javascript限制网页只能在微信内置浏览器中访问
最近正在开发一个微信公众账号,其中有一项功能是用户发送文字消息给公众号,然后公众号返回图文消息给用户,用户再点击图文消息即可跳转到一个网页链接,在微信的内置浏览器中打开。
那么问题就来了,这个网页首先涉及到了移动web前端开发,我优先选择了用HTML5+bootstrap组合来实现页面的美观效果,前端其他的任务交给javascript解决(这里我是完全使用原生javascript代码,没有用到任何的框架,因为考虑到手机加载网页的速度本来就慢,而且框架中很多用不到的功能也会随网页一起加载,耗费用户流量)。
一切功能都就绪以后,客户试用也觉得很满意,之后我就把代码提交到了正式的服务器上。不过,对方又突然提到了一点:你做的页面确实挺漂亮的,兼容性也不错,但是这个页面用电脑上的浏览器也是可以访问的,那么其他人就可以很随便地查看页面的源代码,进而copy整个页面,能不能有什么方法防止这一点?那么问题就又来了,我是第一次做微信二次开发,还没遇到过这样的需求,怎么搞定呢?
一时间想不出来,后来我就把这个问题先放了放,去做后台的一些业务。在做后台的一个数据采集功能时,PHP代码当中用到了$_SERVER['HTTP_USER_AGENT']这个参数,我突然想到浏览器访问网页时都会发送一个UserAgent给服务器,它里面包含了一些浏览器及用户操作系统的基本信息,既然微信有内置浏览器,那么用微信浏览网页时这个UserAgent里面会不会带上和微信相关的独有的标识呢(毕竟腾讯这么大个公司,而微信又是他们的核心产品之一)?干脆用代码打印一下它的UserAgent来一探究竟,javascript代码如下:
&script type="text/javascript"&
&&& alert(navigator.userAgent);
在我的手机上得到了如图所示的结果:
这一下果然还真的看到了不一样的地方,相信聪明的朋友也已经发现了,没错,就是这个东西:MicroMessenger/6.0.0.50_r,斜杠后面的这一串就是我当前使用的微信的版本号,前面则应该是微信的一个独有标识了。其实我一开始看成了MicroMessage,想着中文翻译过来是“微消息”的意思,但仔细一看发现不是的,后面查了词典才知道Messenger这个词有“报信者,送信者”的意思,也就不觉得奇怪了。这个标识应该来说是其他浏览器不会有的,那么解决方案就来了,请看代码:
&script type="text/javascript"&
&&& // 对浏览器的UserAgent进行正则匹配,不含有微信独有标识的则为其他浏览器
&&& var useragent = navigator.userA
&&& if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
&&&&&&& // 这里警告框会阻塞当前页面继续加载
&&&&&&& alert('已禁止本次访问:您必须使用微信内置浏览器访问本页面!');
&&&&&&& // 以下代码是用javascript强行关闭当前页面
&&&&&&& var opened = window.open('about:blank', '_self');
&&&&&&& opened.opener =
&&&&&&& opened.close();
这段代码在Android、iPhone、iPad、PC上都进行了测试,只要不是在微信内部打开网页的,首先就会弹出上面那个警告框,此时后面的页面是空白的,什么都还没加载,当点击警告框的确定按钮之后,最后三行代码将强行关闭当前页面。OK,到这里算是实现了用户原本的意思了,可以简单收工了。
等等,真的可以这样收工了么?你确定不会有其他问题?当然不是,其实这个方法并不会让你高枕无忧,因为对于伪造的UserAgent,还是可以绕过这条限制的,总的来说就是防君子不防小人了,大家懂得。当然,如果哪位朋友有解决这个问题的更好方法,还麻烦在下面评论告知,技术在于相互的分享和交流嘛,呵呵。
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910

我要回帖

更多关于 微信内置浏览器 的文章

 

随机推荐