wifi.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. Page({
  2. onShareAppMessage() {
  3. return {
  4. title: 'Wi-Fi',
  5. path: 'packageAPI/pages/device/wifi/wifi'
  6. }
  7. },
  8. data: {
  9. theme: 'light',
  10. wifiList: []
  11. },
  12. onUnload() {
  13. this.stopSearch()
  14. },
  15. startSearch() {
  16. const getWifiList = () => {
  17. wx.getWifiList({
  18. success: () => {
  19. wx.onGetWifiList((res) => {
  20. const wifiList = res.wifiList
  21. .sort((a, b) => b.signalStrength - a.signalStrength)
  22. .map(wifi => {
  23. const strength = Math.ceil(wifi.signalStrength * 4)
  24. return Object.assign(wifi, {strength})
  25. })
  26. this.setData({
  27. wifiList
  28. })
  29. })
  30. },
  31. fail(err) {
  32. console.error(err)
  33. }
  34. })
  35. }
  36. const startWifi = () => {
  37. wx.startWifi({
  38. success: getWifiList,
  39. fail(err) {
  40. console.error(err)
  41. }
  42. })
  43. }
  44. wx.getSystemInfo({
  45. success(res) {
  46. const isIOS = res.platform === 'ios'
  47. if (isIOS) {
  48. wx.showModal({
  49. title: '提示',
  50. content: '由于系统限制,iOS用户请手动进入系统WiFi页面,然后返回小程序。',
  51. showCancel: false,
  52. success() {
  53. startWifi()
  54. }
  55. })
  56. return
  57. }
  58. startWifi()
  59. }
  60. })
  61. },
  62. stopSearch() {
  63. wx.stopWifi({
  64. success(res) {
  65. console.log(res)
  66. },
  67. fail(err) {
  68. console.error(err)
  69. }
  70. })
  71. },
  72. onLoad() {
  73. this.setData({
  74. theme: wx.getSystemInfoSync().theme || 'light'
  75. })
  76. if (wx.onThemeChange) {
  77. wx.onThemeChange(({theme}) => {
  78. this.setData({theme})
  79. })
  80. }
  81. }
  82. })