微信开发中有这类需求,用户点击进入了公众号某些页面或操作菜单后进入特定页面后,进行了某些操作如提交数据,完成后我们就想直接关闭当前页面,让用户直接回到公众号对话窗口。而不是再麻烦用户点击左上角的返回按钮甚至要点击多次返回才能回到公众号对话窗口。
百度后发现基本上提到的方法都没法用了。
搜索微信公众平台wiki,在“微信JS-SDK说明文档”里提到了有微信js sdk的api可以实现这个功能
具体网页在这里
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN
关闭当前网页窗口接口
wx.closeWindow();
具体步骤是这样的:
JSSDK使用步骤
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
步骤二:引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js
步骤三:通过config接口注入权限验证配置
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用。
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
这一步的关键是:这是异步,这一步成功以后才有wx对象可以使用来调用sdk里的api
步骤四:通过ready接口处理成功验证
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
这一步就是在第三步完成后会调用wx.ready.说明此时wx对象已经可以用了,所以如果我们提交完数据就关闭当前页时,我们就要这样调用
wx.ready(function(){
wx.closeWindow();}
);
稍微完整的代码如下:
<script>
wx.config({
debug: false,
appId: 'wxfa********',
timestamp:141233452145 ,
nonceStr: 'aetsgtact',
signature: '************',
jsApiList: ['closeWindow']
});
alert(\"提交成功!\");
wx.ready(function(){
wx.closeWindow();
});";
</script>
这样就可以了