js-sdk基本介绍

除去服务号的九大接口外,微信提供了JS-SDK接口,所谓JS-SDK接口也就是在网页中使用javascript来更改网页设置,

(比如隐藏右上角的菜单)获取用户状态(比如地理位置)甚至调用微信的录音功能上传下载和扫描等功能,

由于需要用到JS代码,因此该接口只能在开发模式下使用。

我们还是照老规矩,先查看手册

JS-SDK快速入门体验案例:

我们来实现一个简单的小功能,通过js-sdk接口,灵活的控制右上角菜单的显示和隐藏

我们先来看看手册:

我们将上一节课的dream.php代码稍微的进行修改一下,代码如下所示:

<?phprequire_once "common.php";//获取code,得到access_token和appid$code = $_GET['code'];//公众号的appid$appid = "wxed89d8f74fa6fc51";//公众号的appsecret$appsecret = 'd4624c36b6795d1d99dcf0547af5443d';$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appsecret}&code={$code}&grant_type=authorization_code";$res = http_request($url,null);//json解码$res = json_decode($res);//获取openid和access_token$openid = $res->openid;$access_token = $res->access_token;//这里是请求过去拉取用户信息这和基本接口的获取是不一样的,详情可以参考手册上的第四步$url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$openid}";$res = http_request($url,null);//他是通过json返回用户的基本信息的$res = json_decode($res);$nickname = $res->nickname;  //用户昵称$headimgurl = $res->headimgurl; //用户头像//因为他放回http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46//所以要处理以下后面的46$small_head_imgurl = substr($headimgurl,0,-1).'132'; //小头像的地址//通过access_token和openid获取该用户的详细信息
?>
<!doctype html>
<html> <head> <meta charset="utf-8"> <title>世界留言板</title> <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0, maximum-scale=1.0,user-scalable=no;"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <link href="./jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css"> <script src="./jquery-1.6.4.min.js" type="text/javascript"></script> <script src="./jquery.mobile-1.0.min.js" type="text/javascript"></script> <!--加入JS-SDK的代码--><script>//加一个监听事件来调用js-sdk接口
            document.addEventListener('WeixinJSBridgeReady',function onBridgeReady(){WeixinJSBridge.call('hideOptionMenu'); //意思是调用这个函数去隐藏菜单
                });//通过函数来直接调用function test1(){WeixinJSBridge.call('hideOptionMenu'); //意思是隐藏右上角菜单
                alert('成功关闭右上角菜单');}function test2(){WeixinJSBridge.call('showOptionMenu');  //意思是显示右上角的菜单嘛
                alert("成功显示右上角菜单");}//使用jquery的绑定方式来进行调用js-sdk接口
            $(document).ready(function(){$('#test3').click(function(){WeixinJSBridge.call('hideOptionMenu');alert('成功关闭右上角菜单');});});$(document).ready(function(){$('#test4').click(function(){WeixinJSBridge.call('showOptionMenu');alert('成功显示右上角菜单');});});</script></head> <body> <div data-role="page" id="page3"> <div data-role="header"> <h1>世界留言板</h1> </div> <div data-role="content"> <form action="post_dream.php" method="post" data-ajax="false" > <div data-role="fieldcontain"> <label for="textarea"><?php echo $nickname; ?>, 请说出您对世界心声:</label> <textarea cols="40" rows="8" name="textarea" id="textarea"></textarea> </div> <!--通过隐藏表单发送我们会用到的参数--><input type="hidden" name="openid" value="<?php echo $openid; ?>" /><input type="hidden" name="nickname" value="<?php echo $nickname; ?>" /><input type="hidden" name="small_head_imgurl" value="<?php echo $small_head_imgurl; ?>" /><div class="ui-grid-a"> <div class="ui-block-a"> <button type="submit" data-role="button" >提交心声</button> </div> <div class="ui-block-b"> <button type="reset" data-role="button">重输心声</button> </div> </div> </form><div class="ui-block-a"> <button onclick="test1()" data-role="button" >关闭右上角</button> </div><div class="ui-block-a"> <button onclick="test2()" data-role="button" >显示右上角</button> </div><!--通过id来调用js-sdk--><div class="ui-block-a"> <button id="test3" data-role="button" >JQ关闭右上角</button> </div><div class="ui-block-a"> <button id="test4" data-role="button" >JQ显示右上角</button> </div></div> </div> </body>
</html> 

我们这节课主要用了2个js-sdk的接口

1...hideOptionMenu-----------------(隐藏右上角菜单)

2...showOptionMenu----------------(显示右上角菜单)

转载于:https://www.cnblogs.com/leigood/p/5257508.html

夺命雷公狗---微信开发54----微信js-sdk接口开发(1)之快速入门相关推荐

  1. 夺命雷公狗---微信开发39----微信语言识别接口1

    语音识别接口的基本介绍 注意: 由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立即生效,对已关注用户需要24小时生效,开发者可以从新关注帐号进行测试. 我们可以在测试号下方的体验接口权限表 ...

  2. 夺命雷公狗---微信开发26----客服消息接口基础和推送视频

    我们按照上一课的套路继续改写下index.php即可实现,代码如下所示: <?php /*** wechat php test*///define your token require_once ...

  3. 夺命雷公狗-----React---5--props对象的传递

    提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head><meta cha ...

  4. 夺命雷公狗TP3.2.3商城2-----后台模版引入和后台控制器的创建

    首先我们来到D:\phpStudy\WWW\shop\WEB  目录下,将Home目录进行复制一份,并且改名为Admin,如下所示: 然后将我们准备好的后台首页模版放入   D:\phpStudy\W ...

  5. 夺命雷公狗ThinkPHP项目之----商城1项目整体架构

    夺命雷公狗项目之---商城 本人准备更新套基于tp下开发的商城的项目,为啥呢?原因和简单,本人没使用过框架开发商城,准备用一些时间来开发套B2C的商城系统.. 项目规划: 1:项目整体架构 用户部分 ...

  6. 夺命雷公狗ThinkPHP项目之----商城10商品属性管理

    我们一般做项目前就要分析业务逻辑先,这次也不例外. attr_type:是指属性的类型,有唯一,单选和多选之分 唯一属性,是指用户在购买商品时,可以看到的扩展属性如下图所示: 单选属性,是指用户在购买 ...

  7. 夺命雷公狗之后台登录一条龙模版

    今天用bootstrap开发了套后台登录和管理后台管理的模版,有需要的朋友可以拿去用用. 或者可以@夺命雷公狗进行技术交流.... 下载地址: http://pan.baidu.com/s/1kVff ...

  8. 个人号微信淘宝客机器人SDK定制开发教程

    个人号微信淘宝客机器人SDK定制开发教程,来自秋天不穿秋裤,天冷也要风度的程序猿之手,必属精品! 今天给大家介绍微信个人号自动回复机器人的开发教程!使用微信机器人托管微信,可以避免不及时回复错过的消息 ...

  9. 做微信h5支付的统一下单接口开发,虽然已经生成了mweb_url支付链接,但是访问时出现错误提示:‘商家参数格式有误,请联系商家解决’,但是检查h5支付提交的参数,都没有错误。 微信h5支付开发错误

    做微信h5支付的统一下单接口开发,虽然已经生成了mweb_url支付链接,但是访问时出现错误提示:'商家参数格式有误,请联系商家解决',但是检查h5支付提交的参数,都没有错误. 后面看到官方文档, 说 ...

  10. PHP支付宝微信个人免签即时到帐接口开发实例

    PHP支付宝微信个人免签即时到帐接口开发实例,使用原生支付宝即时到帐接口修改而来,即可实现多接口收款功能,开发只需要按照支付宝即时到帐接口开发即可,减少开发难度 需要修改的文件:notify_url. ...

最新文章

  1. Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?
  2. Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
  3. COW奶牛!Copy On Write机制了解一下
  4. [密码学] 消息认证码基础
  5. php计算器使用方法,php--计算器的算法实现(-)
  6. UCOS 操作系统 安装配置环境
  7. [html] HTML5的Geolocation不允许定位后如何于次让它弹起授权定位?
  8. 新发布 | Azure镜像市场正式上线
  9. Java 11 将至,除了 Oracle JDK 还有这些版本!
  10. 让孩子从小自信的28个方法
  11. plsql developer13的下载、instantclient的下载
  12. c语言编程工程师基础,c语言工程师的工作是什么
  13. DPDK编程指南 (1 --3)
  14. mysql设备采集数据_怎么将PLC设备数据采集到SQL数据库
  15. 年度盘点和预测:数说汽车互联网市场
  16. 基于51单片机DTH11温湿度测量仪protues仿真设计_LCD显示
  17. PyTorch非线性函数拟合
  18. 起码我们曾经爱过,不是吗
  19. stormzhang Android 学习之路
  20. LNK 2001错误 原因以及解决办法

热门文章

  1. Redis 基本命令、键(key)命令、基本数据类型(命令行操作)
  2. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第2节 maven的安装和仓库种类_05仓库的种类和彼此关系...
  3. uni-app 引入本地iconfont的正确姿势以及阿里图标引入
  4. eclipse没有server选项
  5. Kotlin——初级篇(三):数据类型详解
  6. Android Studio Debug按钮简介
  7. 一个前端博客(7)——事件绑定和移除事件
  8. 那些盒模型在IE6中的BUG们,工程狮的你可曾遇到过?
  9. CentOS下安装JDK6u30
  10. Async.js——Node世界中被依赖最多的库No.3