打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
K经验(51)- 微信全景结合二维码识别

K经验(51)- 微信全景结合二维码识别


具体效果请查看原文


krpano制作的全景在国内应用最多的场景应该就是在微信上展示。因为微信往往与公众号有关系,客户希望在展示全景的同时也希望用户能够关注其公众号。关注公众号的办法很多,其中一种就是在微信中长按二维码进行识别,然后便跳转到其公众号页面中。


因此以下都是按照HTML5的情况进行讲解:


如果我们在krpano使用layer进行弹出图片,无论怎么长按都是识别不了。但我们知道普通页面放个img标签的二维码是可以正常在微信的浏览器识别的。于是按照这个思路,决定做个div将img标签放在其中,然后要把这个div放在全景所在的div的后面,也就是在html文件中,二维码div要在全景的div的后面,不然的话弹出来也是会被挡住(这个在后面证明其实意义不大)。


也就是我们有一个按钮实现了html中img标签的图片的弹出。但问题是还是识别不了。这是怎么回事呢?于是尝试着把全景这个div删除掉,发现是可以识别二维码的。原来如此,在全景这个div显示的情况下是识别不了的。但我们不可能说真的删掉全景这个div,我们可以用隐藏div的方法。也就是在xml中我们这样写:


<layer name="counttext" url="%SWFPATH%/plugins/textfield.swf"  vcenter="true" visible="true" alpha="1" html="二维码" autowidth="true" keep="true" autoheight="true" align="bottom"  x="0" y="4%" css="font-family: Verdana; font-size:40px; color:#00AFC4; text-align:center; line-height:36px;" padding="5" roundedge="5"  background="true" 

       backgroundcolor="0x000000"  state="closed"

       backgroundalpha="0.65" border="true" enabled="true"

       bordercolor="0x00AFC4"

       borderalpha="1.0"

       borderwidth="5.0" onclick="if(state == closed,qrcode();set(state,opend),qrcode2();set(state,closed));"/> 



    <action name="qrcode">

    jscall('dingwei.style.visibility = "visible";');

    jscall('pano.style.visibility = "hidden";');

    </action>


    <action name="qrcode2">

    jscall('dingwei.style.visibility = "hidden";');

    jscall('pano.style.visibility = "visible";');

    </action>


counttext是一个按钮,实现弹出二维码的功能。我们给这个按钮加了一个自定义属性为state来记录目前是哪个状态,从而决定点击按钮是显示二维码还是关闭二维码。


qrcode和qrcode分别对两个div对象进行了隐藏和显示。在显示二维码的时候就隐藏pano,在关闭二维码时就显示pano。pano也就是全景本身。注意不包括layer以及hotspot。也就是我们尽管关闭了全景图的显示,但对应的layer和hotspot还是会显示的,因此建议另外加一层全屏的背景层来遮挡住皮肤,也可以另外在这个时候显示一个关闭按钮在右上角,取代二维码的关闭功能。


下面是html的代码部分。注意只需要确定二维码一开始是隐藏的。


<style>

a{ color:#fff;}


#dingwei{

padding:10px;

z-index:100;

background-color:#000000;

filter:Alpha(opacity=0);

color:#FFFFFF;

visibility:hidden;

width:500px;

height:500px;

display:block;

position: absolute;

top:50%;

left:50%;

margin-left:-250px;

margin-top:-250px;

}

img{

max-width:90%;height:auto;

}

</style>


<script src="tour.js"></script>


<div id="pano" style="width:100%;height:100%;">

<noscript><table style="width:100%;height:100%;"><tr style="vertical-align:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>

<script>

embedpano({swf:"tour.swf", xml:"tour.xml", target:"pano", html5:"prefer" });

</script>

</div>



<div id="dingwei">

<div align="center" ><img src="qrcode.jpg" height="400" width="400"/></div> 

</div>


红色的两个div就是我们在xml操作的对象。注意xml中jscall仅适用于krpano 1.19,其它版本可以直接使用js。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vue 生成二维码+截图
网页自动生成二维码
用QRCode生成带有中间logo图的二维码
qrcode.js生成二维码
tp5.1生成二维码
层 DIV 被下拉框遮住问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服