当前位置:   article > 正文

uni-app开发经验分享十九: uni-app对接微信小程序直播

uniapp curl

uni-app对接微信小程序直播

1.登录微信小程序后台-点击>设置->第三方设置->添加直播插件

 2.添加直播组件后->点击<详情>      记录这两个参数直播插件的appid和最新版本号

 3. 打开项目,找到manifest.json这个文件

 代码:

  1. "plugins" : {
  2. "live-player-plugin" : {
  3. "version" : "1.1.9", //最新直播组件版本号
  4. "provider" : "wx********0" //直播appid
  5. }
  6. }

4.获取直播间列表

  1. /**
  2. * 获取直播列表
  3. */
  4. public function getLive(){
  5. //获取access_token
  6. if($_COOKIE['access_token']){
  7. $token = $_COOKIE['access_token'];
  8. }else{
  9. $token=$this->getAccessToken();
  10. setcookie("access_token", $token, time()+7200);
  11. }
  12. $page = i('page', 0); //当前页码
  13. $rows = i('rows', 10); //每页记录条数
  14. //请求直播间列表接口
  15. $live_list_url='https://api.weixin.qq.com/wxa/business/getliveinfo?access_token='.$token;
  16. //需要传递的参数
  17. $data = array(
  18. "start"=>$page,
  19. "limit"=>$rows
  20. );
  21. $data = json_encode($data);
  22. $res=$this->http_request($live_list_url,$data);
  23. //获得直播间列表
  24. $result = json_decode($res, true);
  25. $this->render('default', $result);
  26. }
  27. /**
  28. * 获取access_token
  29. */
  30. public function getAccessToken(){
  31. $appid='wx***********25';//小程序appid
  32. $appsecret='6ce*********d';//小程序appsecret
  33. $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
  34. $res=$this->http_request($url);
  35. $result = json_decode($res, true);
  36. $access_token=$result['access_token'];
  37. return $access_token;
  38. }
  39. //https请求(支持GET和POST)
  40. function http_request($url,$data = null){
  41. $curl = curl_init();
  42. curl_setopt($curl, CURLOPT_URL, $url);
  43. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  44. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  45. if(!empty($data)){
  46. curl_setopt($curl, CURLOPT_POST, 1);
  47. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  48. }
  49. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  50. $output = curl_exec($curl);
  51. //var_dump(curl_error($curl));
  52. curl_close($curl);
  53. return $output;
  54. }
  55. 5.uni-app(vue.js)请求列表信息:
  56. methods: {
  57. getLiveList: function () {
  58. let that = this;
  59. var params = {page: this.page};
  60. that.$.request({
  61. url: this.Config.URL.get_live_list,
  62. data: params,
  63. success: function (data, status, msg, code) {
  64. if (data.room_info.length > 0) {
  65. for (var r = 0; r < data.room_info.length; r++) {
  66. data.room_info[r]['start_time'] = dateUtil.dateUtils.format(that.$.datetimeFormatter(data.room_info[r]['start_time']));
  67. }
  68. that.setData({
  69. live_rows: that.live_rows.concat(data.room_info),
  70. });
  71. } else {
  72. that.setData({flag: !1, ispage: !1})
  73. }
  74. }
  75. });
  76. },
  77. }
  78. 6.获取的列表信息循环列表显示(根据页面需求自己写页面)
  79. 需要在列表中加onclick点击事件,把当前房间的roomid传递到点击事件中
  80. 7.在点击事件中使用 navigator 组件跳转进入直播间
  81. //点击跳转直播页
  82. liveDetail(roomid){
  83. let roomId = roomid; // 填写具体的房间号,可通过下面【获取直播房间列表】 API 获取
  84. let customParams = encodeURIComponent(JSON.stringify({ path: 'pages/index/live', pid: 1 })) // 开发者在直播间页面路径上携带自定义参数(如示例中的path和pid参数),后续可以在分享卡片链接和跳转至商详页时获取,详见【获取自定义参数】、【直播间到商详页面携带参数】章节(上限600个字符,超过部分会被截断)
  85. wx.navigateTo({
  86. url: `plugin-private://wx2b0*******70/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}`
  87. })
  88. },

转载于:https://blog.csdn.net/qq_33273556/article/details/108549977

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/247189?site
推荐阅读
相关标签
  

闽ICP备14008679号