device.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <view class="content">
  3. <button @click="godoBle">添加设备</button>
  4. <button @click="chooseImage">上传图片</button>
  5. </view>
  6. </template>
  7. <script>
  8. import { common } from "../../proto/bundle.js";
  9. //const CryptoJS = require("crypto-js");
  10. const HmacSHA1 = require("crypto-js/hmac-sha1");
  11. const base64 = require("crypto-js/enc-base64");
  12. const utf8 = require("crypto-js/enc-utf8");
  13. const policy =
  14. '{"expiration": "2120-01-01T12:00:00.000Z","conditions": [["content-length-range", 0, 104857600]]}';
  15. const OSSAccessKeyId = "LTAICUWe9r9tRcPB";
  16. const accessKeySecret = "gCZSuqdztp6X1n2xMaCqzhnBSWVJv6";
  17. let wordArray = utf8.parse(policy);
  18. const policyBase64 = base64.stringify(wordArray);
  19. //获取加密参数
  20. const sha1 = HmacSHA1(policyBase64, accessKeySecret);
  21. console.log(`sha1 = ${sha1}`);
  22. const signature = base64.stringify(sha1);
  23. console.log(`sign = ${signature}`);
  24. export default {
  25. data() {
  26. return {};
  27. },
  28. onLoad() {},
  29. methods: {
  30. //选择图片
  31. chooseImage() {
  32. let that = this;
  33. uni.chooseImage({
  34. count: 1,
  35. success(res) {
  36. console.log(res);
  37. let file = res.tempFiles[0];
  38. console.log(file);
  39. that.wxUploadImage(file)
  40. },
  41. });
  42. },
  43. //上传图片
  44. wxUploadImage(file) {
  45. uni.uploadFile({
  46. url: "https://airsmart-photo1.oss-cn-shanghai.aliyuncs.com",
  47. filePath: file.path,
  48. name: 'file',
  49. formData: {
  50. 'key': "wx/test3.png",
  51. 'success_action_status':200,///如果该域的值设置为200或者204,OSS返回一个空文档和相应的状态码。
  52. 'OSSAccessKeyId': OSSAccessKeyId,
  53. 'policy': policyBase64,
  54. 'Signature':signature,
  55. 'Content-Type':'image/jpeg',
  56. },
  57. success: (uploadFileRes) => {
  58. console.log("上传成功");
  59. console.log(uploadFileRes);
  60. },
  61. fail(err){
  62. console.log(err);
  63. }
  64. });
  65. },
  66. goCompent3() {
  67. uni.navigateTo({ url: "../test/component3/component3" });
  68. },
  69. test1() {
  70. let errinfo = common.ErrorInfo.create({
  71. errorCode: 0,
  72. errorMessage: Buffer.from("成功"),
  73. });
  74. //把ErrorInfo对象 编码成Uint8Array (browser) or Buffer (node)
  75. let errBuffer = common.ErrorInfo.encode(errinfo).finish();
  76. //把Uint8Array (browser) 或者 Buffer (node) 解码成ErrorInfo对象
  77. let message = common.ErrorInfo.decode(errBuffer);
  78. //转化为一个对象
  79. let obj = common.ErrorInfo.toObject(message, {
  80. enums: String, // enums as string names
  81. longs: String, // longs as strings (requires long.js)
  82. //bytes: String,
  83. });
  84. console.log(obj);
  85. let buf = Buffer.from(obj.errorMessage);
  86. console.log(`errorMessage = ${buf.toString()}`);
  87. // let buf = Buffer.from(obj.errorMessage)
  88. // console.log(buf);
  89. // console.log(buf.toString());
  90. },
  91. godoBle() {
  92. //添加设备
  93. // #ifdef MP-WEIXIN||APP-PLUS
  94. uni.navigateTo({
  95. url: "../ble/ScanBleDevice",
  96. });
  97. // #endif
  98. // #ifdef H5
  99. uni.navigateTo({
  100. url: "../ble/ConnectBleDevice",
  101. });
  102. // uni.showToast({
  103. // title:'H5页面不支持扫描设备',
  104. // icon:'none'
  105. // })
  106. // #endif
  107. },
  108. },
  109. };
  110. </script>
  111. <style>
  112. .content {
  113. display: flex;
  114. flex-direction: column;
  115. align-items: center;
  116. justify-content: center;
  117. margin: 20rpx;
  118. }
  119. </style>