index.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <view class="content">
  3. <image class="logo" src="/static/logo.png"></image>
  4. <view class="text-area">
  5. <text class="title">{{title}}</text>
  6. </view>
  7. <view>收到广播:{{receviceMessage}}</view>
  8. <input v-model="sendMessage" />
  9. <button @click="sendBroadcastUHF">发送uhf广播</button>
  10. </view>
  11. </template>
  12. /*https://www.cnblogs.com/Mr-East/p/13410568.html
  13. **/
  14. <script>
  15. export default {
  16. data() {
  17. return {
  18. title: 'UniApp Broadcast Demo for UHF',
  19. receviceMessage: '',
  20. sendMessage: '',
  21. intentAction: 'com.rscja.scanner.action.scanner.RFID',
  22. }
  23. },
  24. onLoad() {
  25. this.initBroadcast()
  26. },
  27. methods: {
  28. initBroadcast() {
  29. let _this = this;
  30. var main = plus.android.runtimeMainActivity();
  31. var receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
  32. onReceive: function(context, intent) {
  33. plus.android.importClass(intent);
  34. let code = intent.getStringExtra("data"); // 换你的广播标签
  35. _this.receviceMessage = code
  36. }
  37. });
  38. var IntentFilter = plus.android.importClass('android.content.IntentFilter');
  39. var filter = new IntentFilter();
  40. filter.addAction(_this.intentAction); //自定义广播ACTION
  41. filter.addAction("com.rscja.scanner.action.scanner.RFID");
  42. main.registerReceiver(receiver, filter);
  43. },
  44. sendBroadcastUHF() {
  45. var Intent = plus.android.importClass("android.content.Intent");
  46. //7.1以前用android.intent.action.START_BARCODE_RFID
  47. var intent = new Intent("com.rscja.scanner.action.START_BARCODE_RFID");
  48. var keyValue = this.sendMessage;
  49. var main = plus.android.runtimeMainActivity();
  50. intent.setPackage("com.rscja.scanner");
  51. intent.putExtra("function", 11);
  52. //intent.setFlags(0x08800000);
  53. console.log(intent, keyValue, main)
  54. main.sendBroadcast(intent);
  55. },
  56. }
  57. }
  58. </script>
  59. <style>
  60. .content {
  61. display: flex;
  62. flex-direction: column;
  63. align-items: center;
  64. justify-content: center;
  65. }
  66. .logo {
  67. height: 200rpx;
  68. width: 200rpx;
  69. margin-top: 200rpx;
  70. margin-left: auto;
  71. margin-right: auto;
  72. margin-bottom: 50rpx;
  73. }
  74. .text-area {
  75. display: flex;
  76. justify-content: center;
  77. }
  78. .title {
  79. font-size: 36rpx;
  80. color: #8f8f94;
  81. }
  82. </style>