contactBusiness.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. Page({
  2. /**
  3. * 页面的初始数据
  4. */
  5. data: {
  6. booShow: false,
  7. actions: [
  8. {
  9. name: '呼叫',
  10. value: 'makePhoneCall'
  11. },
  12. {
  13. name: '复制号码',
  14. value: 'setClipboardData'
  15. },
  16. {
  17. name: '添加到手机通讯录',
  18. value: 'addPhoneContact'
  19. }
  20. ],
  21. businessInfo: {
  22. phone: '13429176706'
  23. }
  24. },
  25. /**
  26. * 生命周期函数--监听页面加载
  27. */
  28. onLoad(options) {
  29. },
  30. /**
  31. * 生命周期函数--监听页面初次渲染完成
  32. */
  33. onReady() {
  34. },
  35. /**
  36. * 生命周期函数--监听页面显示
  37. */
  38. onShow() {
  39. },
  40. /**
  41. * 生命周期函数--监听页面隐藏
  42. */
  43. onHide() {
  44. },
  45. /**
  46. * 生命周期函数--监听页面卸载
  47. */
  48. onUnload() {
  49. },
  50. /**
  51. * 页面相关事件处理函数--监听用户下拉动作
  52. */
  53. onPullDownRefresh() {
  54. },
  55. /**
  56. * 页面上拉触底事件的处理函数
  57. */
  58. onReachBottom() {
  59. },
  60. /**
  61. * 用户点击右上角分享
  62. */
  63. onShareAppMessage() {
  64. },
  65. showActionSheet() {
  66. this.setData({ booShow: true })
  67. },
  68. hideActionSheet() {
  69. this.setData({ booShow: false })
  70. },
  71. async onSelect(event) {
  72. const { value } = event.detail
  73. const { businessInfo } = this.data
  74. this.hideActionSheet()
  75. switch (value) {
  76. case 'makePhoneCall':
  77. try {
  78. await wx.makePhoneCall({ phoneNumber: businessInfo.phone })
  79. } catch (err) {}
  80. break
  81. case 'setClipboardData':
  82. try {
  83. await wx.setClipboardData({ data: businessInfo.phone })
  84. } catch (err) {}
  85. break
  86. case 'addPhoneContact':
  87. this.handleGetSetting()
  88. break
  89. default:
  90. }
  91. },
  92. // 获取添加手机通讯录联系人权限
  93. async handleGetSetting() {
  94. const that = this
  95. try {
  96. const { errMsg, authSetting } = await wx.getSetting()
  97. if (errMsg === 'getSetting:ok') {
  98. if (authSetting['scope.addPhoneContact']) {
  99. await that.addPhoneContactBridge()
  100. return
  101. }
  102. }
  103. } catch (err) {}
  104. try {
  105. await wx.authorize({ scope: 'scope.addPhoneContact' })
  106. await that.addPhoneContactBridge()
  107. } catch (err) {
  108. wx.showModal({
  109. title: '提示',
  110. content: '未开启添加手机通讯录联系人权限,去设置中打开',
  111. success(res) {
  112. if (res.confirm) {
  113. that.openSetting()
  114. }
  115. }
  116. })
  117. }
  118. },
  119. // 去小程序自带设置页:返回
  120. async openSetting() {
  121. try {
  122. const openSettingData = await wx.openSetting()
  123. if (openSettingData.authSetting['scope.addPhoneContact']) {
  124. await this.addPhoneContactBridge()
  125. }
  126. } catch (err) {}
  127. },
  128. async addPhoneContactBridge() {
  129. const { businessInfo } = this.data
  130. try {
  131. await wx.addPhoneContact({
  132. firstName: 'businessInfo.phone',
  133. mobilePhoneNumber: businessInfo.phone
  134. })
  135. } catch (err) {}
  136. },
  137. async openLocationBridge() {
  138. try {
  139. // 测试 latitude: 30.25727 longitude: 120.20523
  140. await wx.openLocation({
  141. latitude: 30.25727,
  142. longitude: 120.20523,
  143. name: '浙江省杭州市余杭区'
  144. })
  145. } catch (err) {}
  146. }
  147. })