scene.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. import * as SocketHandle from '../../utils/socket-handle'
  2. import { getQueryString } from './../../utils/tools'
  3. import ImSend from './../../utils/imSend'
  4. import ImApi from './../../apis/im'
  5. // pages/web/web.js
  6. const app = getApp()
  7. function randomString(e) {
  8. for (var t = "", i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", n = 0; n < e; n++)
  9. t += i.charAt(Math.floor(Math.random() * i.length));
  10. return t
  11. }
  12. Page({
  13. /**
  14. * 页面的初始数据
  15. */
  16. data: {
  17. url: "",
  18. pullUrl: [],
  19. pushUrl: '',
  20. live_base_url: "rtmp://120.24.85.77:1935/hls",
  21. socketOpts: {},
  22. room_id: 'test',
  23. hasBeLogin: false,
  24. vr_link: '',
  25. showWebView: true
  26. },
  27. /**
  28. * 生命周期函数--监听页面加载
  29. */
  30. onLoad: function (options) {
  31. let { vr_link } = options
  32. vr_link = decodeURIComponent(vr_link)
  33. this.vrLink = vr_link
  34. let room_id = 'test'
  35. let opts = {
  36. roomId: room_id || options.room_id || getQueryString(vr_link, 'room_id') || randomString(18),
  37. userId: getApp().globalData.userinfo.viewerId,
  38. role: 'customer',
  39. scene_num: getQueryString(vr_link, 'm')
  40. }
  41. this.setData({
  42. socketOpts: opts,
  43. url: `${vr_link}&room_id=${room_id || opts.roomId}${options.is_auto? `&vr=1` : ''}`,
  44. room_id: opts.roomId,
  45. house_id: options.house_id || '',
  46. vr_link: vr_link
  47. })
  48. this.scene = getQueryString(vr_link, 'm')
  49. this.getHouseDetail(this.scene)
  50. this.socket = SocketHandle.initSocket(this, opts)
  51. },
  52. onShow() {
  53. if (app.globalData.token && !getQueryString(this.data.url, 'user_id')) {
  54. this.setData({
  55. url: `${this.data.url}&role=${app.globalData.userinfo.type === 'guide' ? 'agent' : 'customer'}&user_id=${app.globalData.userinfo.viewerId}${this.data.hasBeLogin ? `&vr=1` : ''}`
  56. })
  57. }
  58. },
  59. onUnload () {
  60. this.socket.disconnect()
  61. },
  62. countLiveUrl(user_id) {
  63. return `${this.data.live_base_url}/${this.data.room_id}_${user_id}`
  64. },
  65. startPlay(data) {
  66. if (!app.globalData.token) {
  67. wx.showToast({
  68. title: '未登录',
  69. })
  70. this.setData({
  71. hasBeLogin: true,
  72. showLogin: true
  73. })
  74. return
  75. }
  76. if (!this.hasSend) {
  77. // this.scene = data.user.scene_num
  78. this.sendVrCard()
  79. this.hasSend = true
  80. }
  81. this.setData({
  82. pushUrl: this.countLiveUrl(getApp().globalData.userinfo.user_id)
  83. })
  84. },
  85. createLivePull({persons, roomId}) {
  86. let arr = []
  87. persons.forEach(item => {
  88. arr.push(this.countLiveUrl(item.userId))
  89. })
  90. this.setData({
  91. pullUrl: arr
  92. })
  93. },
  94. someoneLeave() {
  95. this.setData({
  96. pullUrl: [],
  97. pushUrl: ''
  98. })
  99. },
  100. sendVrCard () {
  101. ImApi.addFriend('1000fe7fc7dfd202f9c1594690399935').finally(() => {
  102. ImSend.sendVrMsg({title: '带看', detail_images: ['https://houseoss.4dkankan.com/4dHouse/admin/upload/20200721936_406.jpg'], vrLink: encodeURIComponent(this.vrLink)}, this.data.room_id, '1000fe7fc7dfd202f9c1594690399935', true)
  103. })
  104. },
  105. getHouseDetail (scene) {
  106. // return HouseApi.getHouseByScene(scene).then(res => {
  107. // let house = res.data
  108. // house.detail_images = JSON.parse(house.detail_images)
  109. // this.setData({
  110. // house
  111. // })
  112. // return res
  113. // })
  114. },
  115. onShareAppMessage: function (res) {
  116. var path =`/pages/web/web?house_id=${this.data.house_id}&vr_link=${encodeURIComponent(this.data.vr_link)}`;
  117. var arr = this.data.house.detail_images;
  118. var imageurl = arr[0];
  119. return {
  120. title: this.data.house.title,
  121. path: path,
  122. imageUrl: imageurl, // 分享的封面图
  123. success: () => {
  124. // 转发成功
  125. },
  126. fail: function(err) {
  127. console.log(err)
  128. app.ShowModel('网络错误', '转发失败~');
  129. // 转发失败
  130. }
  131. }
  132. },
  133. bindmessage (e) {
  134. const img_url = e.detail.data[0]
  135. getApp().globalData.shared_img = img_url
  136. },
  137. loginSuccess () {
  138. this.onShow()
  139. this.hideLogin()
  140. },
  141. hideLogin () {
  142. this.setData({
  143. showLogin: false
  144. })
  145. },
  146. })