From 9c03b75ea7dfdc210568fae90927060ffc7a85c3 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期四, 04 五月 2023 16:44:46 +0800 Subject: [PATCH] # --- nativeplugins/Hanyin-Plugin/android/proguard.txt | 0 nativeplugins/Hanyin-Plugin/android/libs/CPCL_V1.07.jar | 0 pages.json | 30 store/actionsType.js | 11 store/gettersType.js | 13 store/modules/bluetooth.js | 54 nativeplugins/Hanyin-Plugin/android/AndroidManifest.xml | 11 pages/print/printUNI.vue | 820 +-------- nativeplugins/Hanyin-Plugin/android/classes.jar | 0 nativeplugins/Hanyin-Plugin/package.json | 21 store/index.js | 15 nativeplugins/Hanyin-Plugin/android/META-INF/com/android/build/gradle/aar-metadata.properties | 2 manifest.json | 4 nativeplugins/Hanyin-Plugin/android/R.txt | 2471 +++++++++++++++++++++++++++++++ common/mock/index.js | 610 +++++++ main.js | 9 common/bluetooth.js | 310 +++ common/print.js | 318 ++++ nativeplugins/Hanyin-Plugin/android/hanyin_plugin1.0.4.aar | 0 19 files changed, 3,980 insertions(+), 719 deletions(-) diff --git a/common/bluetooth.js b/common/bluetooth.js new file mode 100644 index 0000000..de8025a --- /dev/null +++ b/common/bluetooth.js @@ -0,0 +1,310 @@ +import Vue from 'vue'; +let main, Context, BManager, BluetoothAdapter, BAdapter, BluetoothDevice, IntentFilter; +import {SET_INFODATA,SET_CONNECTBLEDATA} from '@/store/actionsType.js'; +import {GET_CONNECTBLEDATA} from '@/store/gettersType.js'; +/** + * 钃濈墮鍒濆鍖栧拰娉ㄥ唽 + */ +Vue.prototype.$init_bluetooth = function(){ + console.log('钃濈墮鍒濆鍖�'); + let _this = this; + //鑾峰彇android搴旂敤Activity娲诲姩瀵硅薄 + main = plus.android.runtimeMainActivity(); + //寮曞叆Context绫� + Context = plus.android.importClass("android.content.Context"); + // Context.BLUETOOTH_SERVICE 鑾峰彇Context绫荤殑闈欐�佸父閲�(钃濈墮鏈嶅姟锛岃幏鍙朆luetoothManager锛屼互浣跨敤钃濈墮) + BManager = main.getSystemService(Context.BLUETOOTH_SERVICE); + //鑾峰彇钃濈墮閫傞厤鍣ㄥ璞$被 + BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter"); + //钃濈墮鏈湴閫傞厤鍣�(瀵硅薄) + BAdapter = BluetoothAdapter.getDefaultAdapter(); + //寮曞叆钃濈墮璁惧绫�(鍒涘缓涓庣浉搴旇澶囩殑杩炴帴鎴栨煡璇㈡湁鍏宠璁惧鐨勪俊鎭紝渚嬪鍚嶇О锛屽湴鍧�锛岀被鍜岀粦瀹氱姸鎬�) + BluetoothDevice = plus.android.importClass('android.bluetooth.BluetoothDevice'); + //寮曞叆杩囨护鍣ㄧ被 (IntentFilter鍙互鍖归厤Intent涓殑鍔ㄤ綔,绫诲埆,鏁版嵁) + IntentFilter = plus.android.importClass('android.content.IntentFilter'); +} +/** + * 妫�鏌ヨ摑鐗欐槸鍚﹀紑鍚� + * 1.鐢ㄦ埛娌℃湁寮�鍚�,鎻愮ず寮�鍚� + * 2.鐢ㄦ埛钃濈墮宸茬粡寮�鍚� + */ +Vue.prototype.$check_bluetooth_open = function(){ + let _this = this; + /** + * BAdapter.isEnabled(); 鍒ゆ柇钃濈墮鏄惁鎵撳紑 + * BAdapter.enable(); //寮�鍚摑鐗� + * BAdapter.disable(); //鍏抽棴钃濈墮 + */ + return new Promise((resolve,reject)=>{ + if (!BAdapter.isEnabled()) { + //钃濈墮鏈墦寮� + uni.showModal({ + title:"鎻愮ず", + content:"钃濈墮鏈紑鍚�,鏄惁寮�鍚摑鐗檦", + success:function(res){ + if (res.confirm) { + //寮�鍚摑鐗� + BAdapter.enable(); + resolve(true); + }else if(res.cancel){ + resolve(false); + } + } + }) + // 鍚庣画鎻愮ず妗嗘彁绀烘垨鐢ㄦ埛鎵嬪姩鎵撳紑 + } else { + //钃濈墮宸叉墦寮� + resolve(true); + } + }) +} + +/** + * 妫�娴嬫墜鏈烘槸鍚﹀凡缁忚繛鎺ヨ摑鐗欒澶� + */ +Vue.prototype.$check_bluetooth_connect = function(){ + let _this = this; + // 鍏堟竻绌簐uex鍘熸潵宸叉湁鐨勬暟鎹� + _this.$store.dispatch(SET_CONNECTBLEDATA,[]); + return new Promise((resolve,reject)=>{ + // 鑾峰彇android搴旂敤宸查厤瀵圭殑钃濈墮璁惧绫� + let lists = BAdapter.getBondedDevices(); + // 寮曞叆绫� + plus.android.importClass(lists); + // 鑾峰彇宸查厤瀵硅摑鐗欒澶囩殑涓暟 + let len = lists.size(); + // iterator() 鎶婁竴涓鍣ㄧ殑鎵�鏈夊璞★紝鍋氭垚涓�涓嚎鎬ц〃锛圠ist锛夛紝鑰宨terator鏈韩鏄竴涓寚閽� + let iterator = lists.iterator(); + // console.log(iterator.hasNext()); + plus.android.importClass(iterator); + /** + * iterator.hasNext() true濡傛灉杩唬鍏锋湁鏇村鍏冪礌 + * iterator.next() 鏀惧洖杩唬涓殑涓嬩竴涓厓绱� + * iterator.remove() 浠庡熀纭�闆嗗悎涓Щ闄ゆ杩唬鍣ㄨ繑鍥炵殑鏈�鍚庝竴涓厓绱�(鍙�夋搷浣�) + */ + while (iterator.hasNext()) { + let d = iterator.next(); + plus.android.importClass(d); + let matchList = { + name: d.getName(), + mac: d.getAddress() + } + console.log(matchList); + _this.$store.dispatch(SET_CONNECTBLEDATA,matchList); + resolve({code:true,msg:matchList}); + } + + //鑾峰彇涓�涓凡杩炴帴鐨勮澶� + // plus.android.importClass(BManager); //寮曞叆鐩稿叧鐨刴ethod鍑芥暟 + // //钃濈墮閫傞厤鍣� + // let BAdapter = BManager.getAdapter(); + // // console.log(BAdapter); + // plus.android.importClass(BAdapter); //寮曞叆鐩稿叧鐨刴ethod鍑芥暟锛岃繖鏍蜂箣鍚庢墠浼氭湁isEna; + // let lists = BAdapter.getBondedDevices(); + // // console.log(lists); + // plus.android.importClass(lists); + // let iterator = lists.iterator(); + // // console.log(iterator); + // plus.android.importClass(iterator); + // // console.log(iterator.hasNext()); + // if(iterator.hasNext()){ //鍒ゆ柇涓嬩竴涓厓绱犵殑鏈夋棤 + // let d = iterator.next(); + // plus.android.importClass(d); + // //宸茶繛鎺ヨ摑鐗欑殑鏁版嵁 + // // console.log(d.getAddress()); + // console.log(d.getAddress() + "----" + d.getName()); + // // _this.match_list = { + // // name: d.getName(), + // // mac: d.getAddress() + // // }; + // let matchList = { + // name: d.getName(), + // mac: d.getAddress() + // } + // _this.$store.dispatch(SET_CONNECTBLEDATA,matchList); + // // console.log(_this.$store.getters.GET_CONNECTBLEDATA) + // /** + // * 杩炴帴鎵撳嵃鏈� + // */ + // resolve({code:true,msg:matchList}); + // }else{ + // resolve({code:false}) + // } + }) +} +/** + * 鎵撳紑钃濈墮 + */ +Vue.prototype.$open_bluetooth = function(){ + let _this = this; + return new Promise((resolve,reject)=>{ + if (!BAdapter.isEnabled()) { + BAdapter.enable(); //鍚姩钃濈墮 + uni.showToast({ + icon: "none", + title: '钃濈墮宸叉墦寮�', + duration: 3000 + }) + resolve(true); + } + }) +} +/** + * 鍏抽棴钃濈墮 + */ +Vue.prototype.$close_bluetooth = function (){ + let _this = this; + if (BAdapter.isEnabled()) { + BAdapter.disable(); //鍏抽棴钃濈墮 + uni.showToast({ + icon: "none", + title: '钃濈墮宸插叧闂�', + duration: 2000 + }) + } else { + uni.showToast({ + icon: "none", + title: '钃濈墮宸插叧闂�', + duration: 2000 + }) + } +} +/** + * 鎼滅储钃濈墮璁惧 + */ +Vue.prototype.$search_bluetooth = function(){ + let _this = this; + let obj = {}; + return new Promise((resolve,reject)=>{ + // console.log(BAdapter.isEnabled()); + // console.log(JSON.stringify(_this.$store.getters)); + // BAdapter.isconnect("DC:1D:30:7C:74:96"); + //鍒ゆ柇钃濈墮鏄惁寮�鍚� + if(!BAdapter.isEnabled()) { + uni.showModal({ + title:"鎻愮ず", + content:"钃濈墮鏈紑鍚�,鏄惁寮�鍚摑鐗檦", + success:function(res){ + if (res.confirm) { + console.log('鐢ㄦ埛鐐瑰嚮纭畾'); + obj.code = false; //鐢ㄦ埛鐐瑰嚮纭畾,寮�鍚摑鐗� + obj.msg = "钃濈墮鏈紑鍚�"; + resolve(obj); + // _this.$open_bluetooth(); + }else if(res.cancel){ + // resolve() + obj.code = null; + resolve(obj); + } + } + }) + }else{ + obj.code = true; + obj.msg = "寮�鍚悳绱㈣摑鐗�"; + resolve(obj); + } + }) +} +/** + * 鐩戝惉钃濈墮璁惧淇℃伅 + */ +Vue.prototype.$search_pipei=function(){ + let timer = null; + let _this = this; + //鎻愮ず钃濈墮寮�鍚潈闄愯闂� + uni.openBluetoothAdapter({ + success(res) { + if (res.errMsg === "openBluetoothAdapter:ok") { + //杩欓噷鏄紑鍚摑鐗欐悳瀵� + uni.startBluetoothDevicesDiscovery({ + success: (res) => { + console.log('startBluetoothDevicesDiscovery success', res) + uni.showLoading({ + title: "钃濈墮鎼滅储涓�...", + mask: true + }) + //姣忔鎼滅储閮芥妸涔嬪墠鐨勬竻绌� + // _this.bArray = []; + // _this.no_match_list = []; + _this.$store.dispatch(SET_INFODATA,[]); + let bArray = []; //鐢ㄤ簬钃濈墮鍘婚噸 + let filter = new IntentFilter(); //瀹炰緥鍖栬繃婊ゅ櫒绫� + let BDevice = new BluetoothDevice(); //瀹炰緥鍖栬摑鐗欒澶囩被 + // let connect = _this.$store.state.Bluetooth.connectBLEData; + // console.log("宸茶繛鎺�:" + JSON.stringify(connect)); + BAdapter.startDiscovery(); //寮�鍚悳绱� + let receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', { + onReceive: function(context, intent) { //鍥炶皟 + try { + plus.android.importClass(intent); + if (intent.getAction() == "android.bluetooth.adapter.action.DISCOVERY_FINISHED") { + main.unregisterReceiver(receiver); //鍙栨秷鐩戝惉 + } else { + // Intent涓幏鍙栬澶囧璞� + BDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + console.log(BDevice.getName() + "---" + BDevice.getAddress()); + // 鍒ゆ柇濡傛灉钃濈墮娌℃湁鍚嶇О鍒欎笉鏄剧ず + if (BDevice.getName() !== null) { + //钃濈墮鍘婚噸 + let address = BDevice.getAddress(); + //宸茬粡杩炴帴鐨勮摑鐗� + if(bArray.indexOf(address) == -1){ + bArray.push(address); + _this.$store.dispatch(SET_INFODATA,{ + name: BDevice.getName(), + mac: BDevice.getAddress() + }) + } + } + //濡傛灉intent涓虹┖鍒欏彇娑堣摑鐗欑洃鍚� + if (BDevice == null) { + main.unregisterReceiver(receiver); //鍙栨秷鐩戝惉 + uni.hideLoading() + //鑾峰彇宸插尮閰嶇殑钃濈墮 + // that.bluetooth_list() + return; + } + if(timer != null){ + clearTimeout(timer); + } + timer = setTimeout(()=>{ + main.unregisterReceiver(receiver); //鍙栨秷鐩戝惉 + uni.hideLoading(); + },3000); + } + } catch (e) { + uni.showToast({ + icon: "none", + title: "钃濈墮鎼滃閿欒~", + duration: 3000, + mask: true + }) + } + } + }); + + filter.addAction(BDevice.ACTION_FOUND); //鍙彂鐜� + filter.addAction(BAdapter.ACTION_DISCOVERY_STARTED); + filter.addAction(BAdapter.ACTION_DISCOVERY_FINISHED); //鎼滅储缁撴灉 + filter.addAction(BAdapter.ACTION_STATE_CHANGED); + main.registerReceiver(receiver, filter); //娉ㄥ唽鐩戝惉 + }, + fail: (err) => { + uni.showToast({ + icon: "none", + title: "钃濈墮鎼滃澶辫触~", + duration: 3000, + mask: true + }) + } + }) + } + }, + fail(err) { + uni.showToast({ + icon: "none", + title: "钃濈墮鎼滅储澶辫触" + }) + } + }) +} diff --git a/common/mock/index.js b/common/mock/index.js new file mode 100644 index 0000000..fd4017d --- /dev/null +++ b/common/mock/index.js @@ -0,0 +1,610 @@ +/* + * mock 瀛樻斁鍏ㄥ眬闈欐�佹暟鎹� + */ +import Vue from 'vue'; +const allMock = { + test: ['闈欐�佹暟鎹�'], + //闈㈠崟鏁版嵁 + order_data: { + CUSTOMER_CODE: "00001", + CUSTOMER_NAME: "瀹嬪皬濮�", + BILL_CODE: "JYM100005228492", + PRINT_DATE_REAL:"2020-09-08 17:31:21", + SEND_MAN: "鍩庡崡鏃т簨", + SEND_MAN_PHONE: "176xxxx7418", + SEND_PROVINCE: "骞夸笢鐪�", + SEND_CITY: "xx甯�", + SEND_COUNTY: "xx鍖�", + SEND_MAN_COMPANY: "鍩庡崡寰�浜�", + ACCEPT_MAN: "钁e皬濮�", + ACCEPT_MAN_PHONE: "176xxxx7418", + ACCEPT_MAN_ADDRESS: "骞夸笢鐪亁xxxxxxxxxxxxxxxxxxxxxxx", + PIECE_NUMBER: "11", + PAYMENT_TYPE: "鍒颁粯", + RETURN_BILL_TYPE: "閭瘎", + SETTLEMENT_WEIGHT: "11kg", + // TRANSFER_CODE: "JDVX9999999999999", + REMARK: "娆$墿鍝佸皬蹇冮厤閫�,鏄撶鍝�,澶囨敞杩欐槸澶囨敞杩欐槸澶囨敞杩欐槸澶囨敞杩欐槸澶囨敞娉ㄨ繖鏄娉ㄨ繖鏄娉ㄦ敞", + PACK_TYPE: "璐х墿绫�", + FREIGHT: "120", + //https://bkimg.cdn.bcebos.com/pic/2934349b033b5bb571dc8c5133d3d539b600bc12?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg + QR_CODE_IMAGE:"", + }, + printTemplate: { + "pagConfig": { + "pageLeft": "0", + "pageTop": "0", + "pageHeight": "48", + "pageWidth": "74" + }, + "printItem": [ + { + "top": "2", + "left": "0", + "textAlign": "start", + "width": "270", + "text": "", + "type": "cross", + "fontWeight": "400", + "height": "3" + }, + { + "top": "180", + "left": "0", + "textAlign": "start", + "width": "270", + "text": "", + "type": "cross", + "fontWeight": "400", + "height": "3" + }, + { + "top": "2", + "left": "0", + "textAlign": "start", + "width": "3", + "text": "", + "type": "vertical", + "fontWeight": "400", + "height": "180" + }, + { + "top": "2", + "left": "270", + "textAlign": "start", + "width": "3", + "text": "", + "type": "vertical", + "fontWeight": "400", + "height": "180" + }, + { + "top": "140", + "left": "0", + "textAlign": "start", + "width": "281", + "text": "", + "type": "cross", + "fontWeight": "400", + "height": "4" + }, + { + "top": "70", + "left": "0", + "textAlign": "start", + "width": "140", + "text": "", + "type": "cross", + "fontWeight": "400", + "height": "4" + }, + { + "top": "2", + "left": "40", + "textAlign": "start", + "width": "3", + "text": "", + "type": "vertical", + "fontWeight": "400", + "height": "180" + }, + { + "top": "2", + "left": "140", + "textAlign": "start", + "width": "3", + "text": "", + "type": "vertical", + "fontWeight": "400", + "height": "140" + }, + // 闈欐�佹枃瀛� + { + "top": "35", + "left": "7.6", + "textAlign": "left", + "barcodetype": "128Auto", + "width": "38", + "fontSize": 9, + "text": "鏂欏彿", + "type": "text", + "fontWeight": "400", + "height": "19" + }, + // { + // "top": "304", + // "left": "0", + // "textAlign": "start", + // "width": "281", + // "text": "", + // "type": "cross", + // "fontWeight": "400", + // "height": "4" + // }, + // { + // "top": "342", + // "left": "0", + // "textAlign": "start", + // "width": "281", + // "text": "", + // "type": "cross", + // "fontWeight": "400", + // "height": "4" + // }, + // { + // "top": "380", + // "left": "0", + // "textAlign": "start", + // "width": "281", + // "text": "", + // "type": "cross", + // "fontWeight": "400", + // "height": "4" + // }, + // { + // "top": "102.6", + // "left": "22.8", + // "textAlign": "start", + // "width": "4", + // "text": "", + // "type": "vertical", + // "fontWeight": "400", + // "height": "277" + // }, + // { + // "top": "190", + // "left": "178.6", + // "textAlign": "start", + // "width": "3", + // "text": "", + // "type": "vertical", + // "fontWeight": "400", + // "height": "114" + // }, + // { + // "dataId": "CUSTOMER_CODE", + // "top": "15.2", + // "left": "125.4", + // "textAlign": "start", + // "width": "152", + // "fontSize": "7", + // "text": "瀵勪欢瀹㈡埛缂栧彿", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "top": "15.2", + // "left": "95", + // "textAlign": "left", + // "width": "34", + // "fontSize": 9, + // "text": "瀹㈢紪: ", + // "type": "text", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "CUSTOMER_NAME", + // "top": "30.4", + // "left": "95", + // "textAlign": "start", + // "width": "148", + // "fontSize": 9, + // "text": "瀵勪欢瀹㈡埛鍚嶇О", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "imgUrl": "/static/img/order/barCode-1.png", + // "dataId": "BILL_CODE", + // "top": "53.2", + // "left": "83.6", + // "textAlign": "start", + // "barcodetype": "128Auto", + // "width": "200", + // "text": "杩愬崟鍙锋潯鐮�", + // "type": "barCode", + // "fontWeight": "400", + // "height": "34" + // }, + // { + // "dataId": "PRINT_DATE_REAL", + // "top": "38", + // "left": "174.8", + // "textAlign": "start", + // "width": "99", + // "fontSize": "2", + // "text": "2019-5-31 18:35:30", + // "type": "field", + // "fontWeight": "400", + // "height": "15" + // }, + // { + // "top": "83.6", + // "left": "7.6", + // "textAlign": "left", + // "barcodetype": "128Auto", + // "width": "38", + // "fontSize": 9, + // "text": "瀵勪欢鑱�", + // "type": "text", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "top": "133", + // "left": "7.6", + // "textAlign": "left", + // "width": "15", + // "fontSize": 9, + // "text": "瀵勪欢", + // "type": "text", + // "fontWeight": "400", + // "height": "38" + // }, + // { + // "top": "307.8", + // "left": "7.6", + // "textAlign": "left", + // "width": "15", + // "fontSize": 9, + // "text": "鏀朵欢", + // "type": "text", + // "fontWeight": "400", + // "height": "38" + // }, + // { + // "top": "224.2", + // "left": "7.6", + // "textAlign": "left", + // "width": "15", + // "fontSize": 9, + // "text": "杩愬崟", + // "type": "text", + // "fontWeight": "400", + // "height": "38" + // }, + // { + // "top": "342", + // "left": "7.6", + // "textAlign": "left", + // "width": "15", + // "fontSize": 9, + // "text": "澶囨敞", + // "type": "text", + // "fontWeight": "700", + // "height": "38" + // }, + // { + // "dataId": "SEND_MAN", + // "top": "106.4", + // "left": "26.6", + // "textAlign": "start", + // "width": "76", + // "fontSize": 9, + // "text": "瀵勪欢浜�", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "SEND_MAN_PHONE", + // "top": "106.4", + // "left": "102.6", + // "textAlign": "start", + // "width": "164", + // "fontSize": 9, + // "text": "瀵勪欢鐢佃瘽", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "SEND_PROVINCE", + // "top": "144.4", + // "left": "26.6", + // "textAlign": "start", + // "width": "148", + // "fontSize": 9, + // "text": "瀵勪欢-鐪�/宸�", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "SEND_CITY", + // "top": "144.4", + // "left": "79.8", + // "textAlign": "start", + // "width": "80", + // "fontSize": 9, + // "text": "瀵勪欢-甯�", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "SEND_COUNTY", + // "top": "144.4", + // "left": "144.4", + // "textAlign": "start", + // "width": "137", + // "fontSize": 9, + // "text": "瀵勪欢-鍖�/鍘�", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "SEND_MAN_COMPANY", + // "top": "163.4", + // "left": "26.6", + // "textAlign": "start", + // "width": "148", + // "fontSize": 9, + // "text": "瀵勪欢鍏徃", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "ACCEPT_MAN", + // "top": "197.6", + // "left": "30.4", + // "textAlign": "start", + // "width": "57", + // "fontSize": "7", + // "text": "鏀朵欢浜�", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "ACCEPT_MAN_PHONE", + // "top": "197.6", + // "left": "79.8", + // "textAlign": "start", + // "width": "150", + // "fontSize": "9", + // "text": "鏀朵欢鐢佃瘽", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "ACCEPT_MAN_ADDRESS", + // "top": "228", + // "left": "30.4", + // "textAlign": "start", + // "width": "149", + // "fontSize": "9", + // "text": "鏀朵欢鍦板潃", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "PIECE_NUMBER", + // "top": "197.6", + // "left": "235.6", + // "textAlign": "start", + // "width": "26", + // "fontSize": "9", + // "text": "浠舵暟", + // "type": "field", + // "fontWeight": "700", + // "height": "19" + // }, + // { + // "top": "197.6", + // "left": "182.4", + // "textAlign": "left", + // "width": "54", + // "fontSize": 9, + // "text": "涓�绁ㄥ浠�", + // "type": "text", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "PAYMENT_TYPE", + // "top": "220.4", + // "left": "216.6", + // "textAlign": "start", + // "width": "34", + // "fontSize": 9, + // "text": "浠樻鏂瑰紡", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "top": "220.4", + // "left": "182.4", + // "textAlign": "left", + // "width": "35", + // "fontSize": 9, + // "text": "鍒颁粯:", + // "type": "text", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "RETURN_BILL_TYPE", + // "top": "243.2", + // "left": "216.6", + // "textAlign": "start", + // "width": "30", + // "fontSize": "4", + // "text": "鍥炲崟绫诲瀷", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "top": "243.2", + // "left": "182.4", + // "textAlign": "left", + // "width": "35", + // "fontSize": "4", + // "text": "鍥炲崟:", + // "type": "text", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "top": "311.6", + // "left": "26.6", + // "textAlign": "left", + // "width": "57", + // "fontSize": 9, + // "text": "鏈堢粨閲嶉噺:", + // "type": "text", + // "fontWeight": "700", + // "height": "19" + // }, + // { + // "top": "311.6", + // "left": "106.4", + // "textAlign": "left", + // "width": "38", + // "fontSize": 9, + // "text": "杩愯垂:", + // "type": "text", + // "fontWeight": "700", + // "height": "19" + // }, + // { + // "top": "326.8", + // "left": "26.6", + // "textAlign": "left", + // "width": "38", + // "fontSize": 9, + // "text": "鍝佸悕:", + // "type": "text", + // "fontWeight": "700", + // "height": "19" + // }, + // { + // "dataId": "SETTLEMENT_WEIGHT", + // "top": "311.6", + // "left": "79.8", + // "textAlign": "start", + // "width": "46", + // "fontSize": 9, + // "text": "璐х墿鎬婚噸閲�", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // // { + // // "dataId": "TRANSFER_CODE", + // // "top": "76", + // // "left": "95", + // // "textAlign": "start", + // // "width": "200", + // // "fontSize": 9, + // // "text": "JDVX9999999999999", + // // "type": "field", + // // "fontWeight": "400", + // // "height": "19" + // // }, + // { + // "dataId": "REMARK", + // "top": "345.8", + // "left": "26.6", + // "textAlign": "center", + // "width": "247", + // "fontSize": 9, + // "text": "杩欐槸澶囨敞杩欐槸澶囨敞杩欐槸澶囨敞杩欐槸澶囨敞杩欐槸澶囨敞娉ㄨ繖鏄娉ㄨ繖鏄娉ㄦ敞", + // "type": "field", + // "fontWeight": "400", + // "height": "30" + // }, + // { + // "dataId": "PACK_TYPE", + // "top": "326.8", + // "left": "64.6", + // "textAlign": "start", + // "width": "148", + // "fontSize": 9, + // "text": "鍖呰绫诲瀷", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "dataId": "FREIGHT", + // "top": "311.6", + // "left": "140.6", + // "textAlign": "start", + // "width": "72", + // "fontSize": 9, + // "text": "111111锟�", + // "type": "field", + // "fontWeight": "400", + // "height": "19" + // }, + // { + // "imgUrl": "/unauth/download/group1/M00/00/32/CgAAA18VQ76AbbAxAAAUC5IVDw0960.png", + // "dataId": "undefined", + // "top": "0", + // "left": "0", + // "textAlign": "left", + // "width": "10", + // "text": "闈欐�佸浘鐗�", + // "type": "img", + // "fontWeight": "100", + // "height": "10" + // }, + // { + // "imgUrl": "/static/img/order/img.jpg", + // "dataId": "QR_CODE_IMAGE", + // "top": "262.2", + // "left": "186.2", + // "textAlign": "left", + // "width": "38", + // "text": "蹇�掑皬鍝ヤ簩缁寸爜", + // "type": "img", + // "fontWeight": "400", + // "height": "38" + // }, + // { + // "imgUrl": "/static/img/order/ewm.png", + // "dataId": "BILL_CODE", + // "top": "262.2", + // "left": "228", + // "textAlign": "start", + // "width": "38", + // "text": "杩愬崟鍙蜂簩缁寸爜", + // "type": "qrCode", + // "fontWeight": "400", + // "height": "38" + // } + ] + } +} + +export default allMock; diff --git a/common/print.js b/common/print.js new file mode 100644 index 0000000..3d73a51 --- /dev/null +++ b/common/print.js @@ -0,0 +1,318 @@ +// #ifdef APP-PLUS +const HanyinPlugin = uni.requireNativePlugin('Hanyin-Plugin'); //姹夊嵃 +// #endif +import Vue from 'vue'; +import store from 'store'; +import { + SET_CONNECTBLEDATA +} from '@/store/actionsType.js'; + +/** + * 1.纭畾濂芥ā鏉� + * 2.鐢ㄦ埛閫夋嫨钃濈墮鍚庡垵濮嬪寲鎵撳嵃鏈哄�� + * 3.绛夊緟瀹㈡埛鐐瑰嚮鎵撳嵃 + */ +let title; +//妯℃澘鏁版嵁 +const printTemplate = Vue.prototype.$Mock.printTemplate; +let {pagConfig,printItem} = printTemplate; + // pageLeft = Number(pagConfig.pageLeft); + // pageTop = Number(pagConfig.pageTop); + // pageHeight = Number(pagConfig.pageHeight); + // pageWidth = Number(pagConfig.pageWidth); +const MULTIPLE = 8; //鎵撳嵃鏈鸿绠楁瘮渚� +let pageLeft=Number(pagConfig.pageLeft) || 0, //鎵撳嵃妯℃澘鏁翠綋宸﹀亸绉婚噺 + pageTop=Number(pagConfig.pageTop) || 0, //鎵撳嵃妯℃澘鏁翠綋涓婂亸绉婚噺 + pageHeight=Number(pagConfig.pageHeight) || 0, //鎵撳嵃妯℃澘椤甸潰楂樺害 + pageWidth=Number(pagConfig.pageWidth) || 0; //鎵撳嵃妯℃澘椤甸潰瀹藉害 +const TRANSFORM = 3.8; //灏哄杞崲鍗曚綅 +//鏁版嵁澶勭悊鍙傛暟瀵硅薄 +const filterData = { + size_conversion:function(value){ + return Math.round(Number(value) / TRANSFORM); + } +} +const instructions = { + "cross":function(list,data,printIndex){ + let x0 = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE; + let y0 = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let x1 = ((filterData.size_conversion(list.width) + filterData.size_conversion(list.left)) + pageLeft < pageWidth ? (filterData.size_conversion(list.width) + filterData.size_conversion(list.left) + pageLeft) : pageWidth) * MULTIPLE + let y1 = y0; + let width = filterData.size_conversion(list.height) > 0 ? filterData.size_conversion(list.height) : 1; + // console.log(x0,y0,x1,y1,width); + //姘村钩绾� + HanyinPlugin.Line({x0,y0,x1,y1,width}, result => { + console.log(result); + }) + + }, + "vertical":function(list,data,printIndex){ + let x0 = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE; + let y0 = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let x1 = x0; + let y1 = (filterData.size_conversion(Number(list.height)) + filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let width = filterData.size_conversion(list.width) > 0 ? filterData.size_conversion(list.width) : 1; + // console.log(x0,y0,x1,y1,width); + //鍨傜洿绾� + HanyinPlugin.Line({x0,y0,x1,y1,width}, result => { + console.log(result); + }) + + }, + "text":function(list,data,printIndex){ + let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE; + let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let width = filterData.size_conversion(Number(list.width)) * MULTIPLE; + let height = filterData.size_conversion(Number(list.height)) * MULTIPLE; + let size = Number(list.fontSize); // 3 4 8 55 + let str = list.text; + let isbole; + let xAlign = "left"; + let yAlign = "left"; + if(list.textAlign === "left"){ + xAlign = "left"; + }else if(list.textAlign === "center"){ + xAlign = "center"; + }else if(list.textAlign === "right"){ + xAlign = "bottom"; + } + + isbole = Number(list.fontWeight) <= 400 ? false : true; //鍔犵矖 + if(size >= 2 && size <= 7){ + size = 55 //16x16 鎴�8x16锛岃涓嫳鏂囪�屽畾 + }else if(size > 7 && size <= 9){ + size = 8; //24x24 鎴�12x24锛岃涓嫳鏂囪�屽畾 + }else if(size > 9 && size <= 16){ + size = 3; //20x20 鎴�10x20锛岃涓嫳鏂囪�屽畾銆� + }else{ + size = 4; //32x32 鎴�16x32锛岀敱ID3 瀛椾綋瀹介珮鍚勬斁澶�2 鍊� + } + console.log(x,y,width,size,isbole,str); + //鏂囨湰(闈欐��) 鍚庣画鍒ゆ柇瀛椾綋鏄惁灞呬腑 濡傛槸: AutCenter 鍚� AutLine + HanyinPlugin.AutLine({x,y,width,size,isbole,isdouble: false,str,type: "1"}, result => { + console.log(result); + }) + }, + "field":function(list,data,printIndex){ + let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE; + let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let width = filterData.size_conversion(Number(list.width)) * MULTIPLE; + let height = filterData.size_conversion(Number(list.height)) * MULTIPLE; + let size = Number(list.fontSize); // 3 4 8 55 + let isbole; + let str = data[list.dataId]; + let xAlign = "left"; + let yAlign = "left"; + + if(list.textAlign === "left" || list.textAlign === "start"){ + xAlign = "left"; + }else if(list.textAlign === "center"){ + xAlign = "center"; + }else if(list.textAlign === "right"){ + xAlign = "bottom"; + } + + isbole = Number(list.fontWeight) <= 400 ? false : true; //鍔犵矖 + if(size >= 2 && size <= 7){ + size = 55; + }else if(size > 7 && size <= 9){ + size = 8; + }else if(size > 9 && size <= 16){ + size = 3; + }else{ + size = 4; + } + console.log(x,y,width,size,isbole,str); + //鏂囨湰(鍔ㄦ��) + HanyinPlugin.AutLine({x,y,width,size,isbole,isdouble: false,str,type: "1"}, result => { + console.log(result); + }) + }, + "barCode":function(list,data,printIndex){ + let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE; + let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let height = filterData.size_conversion(Number(list.height)) * MULTIPLE; + let width = filterData.size_conversion(Number(list.width)) * MULTIPLE; + let str = data[list.dataId]; + console.log(list); + let undertext = true,command=0; + if(Number(list.width) > Number(list.height)){ + //姘村钩 + command = 0; + }else{ + //鍨傜洿 + command = 1; + } + //鏉″舰鐮� -- 鍚庢湡琛ュ厖鏉″舰鐮乼ype绫诲瀷 + HanyinPlugin.Barcode({ + command, + type:"code128", + width: "1", + ratio: "2", + height:height + "", + x, + y, + undertext, + number: "7", + size: "0", + offset: "1", + data:str + }, result => { + console.log(result); + }) + + }, + "img":function(list,data,printIndex){ + let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE; + let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let url = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAAH0CAYAAABiuKiqAAAgAElEQVR4XuydCZQkRdW2owAXxG5xtFuURWn1QwUXxAV7BBUFHHdRAdtlVEDFVhR0FBH3fVBUtN0V+dQWEBHFZZRFXHoQN1Bw1x4U9MO/EXAGd6T/8ybkGJNTVRlvZN3MyK43z/EgdETkjedGVT0ZGRnZcTpEQAREQAREQAREQAREQASSJ9BJPkIFKAIiIAIiIAIiIAIiIAIi4CTuGgQiIAIiIAIiIAIiIAIi0AICEvcWJEkhioAIiIAIiIAIiIAIiIDEXWNABERABERABERABERABFpAQOLegiQpRBEQAREQAREQAREQARGQuGsMiIAIiIAIiIAIiIAIiEALCEjcW5AkhSgCIiACIiACIiACIiACEneNAREQAREQAREQAREQARFoAQGJewuSpBBFQAREQAREQAREQAREwETcFxcXd3bOPco5t59z7qHOuVGhFgEREAEREAEREAEREIElTOAq59z5zrmvOue+0ul01g26rwMV98XFxR2ccyc755YPOlC1JwIiIAIiIAIiIAIiIAItIjDnnDuw0+n8cVAxD0zcFxcXMbu+xjm9jXVQyVE7IiACIiACIiACIiACrSaw6Jzbv9PpnDWIXgxE3BcXF/d1zn19EAGpDREQAREQAREQAREQARFYYgT2G4S8Vxb3xcXF7Z1zv3fObbHEAKs7IiACIiACIiACIiACIjAIAtc75+7U6XQuq9LYIMT9e865+1cJQnVFQAREQAREQAREQAREYIkTuLDT6dy3Sh8rifuNu8fMVwlAdUVABERABERABERABERgSAjctdPp/Ca2r1XF/SXOuXfFnlz1REAEREAEREAEREAERGCICLyi0+msju1vVXHHE7KPiD256omACIiACIiACIiACIjAEBH4VqfTeUhsf6uK+5+dc8tiT656IiACIiACIiACIiACIjBEBP7S6XS2je1vVXHH3pQ6REAEREAEREAEREAEREAEAgh0Op1o/46uiLgWFxcl7gEJUhEREAEREAEREAEREAERAAGJu8aBCIiACIiACIiACIiACLSAgMS9BUlSiCIgAiIgAiIgAiIgAiIgcdcYEAEREAEREAEREAEREIEWEJC4tyBJClEEREAEREAEREAEREAEJO4aAyIgAiIgAiIgAiIgAiLQAgIS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opK4typdClYEREAEREAERGCABCTuEveBDCdg3LBhg/vPf/7jtt56a3fzm998IO0WG5G4m2BVoyIgAiIgAiIgAi0gIHGXuAcN03e9613uuOOOc6tWrXJHHnnkZnX+8Y9/uNe+9rXuk5/8pHvf+97nDjjggI1lrrrqKveLX/wi6DxjY2Purne9a8+yEvcgjCokAiIgAiIgAiKwBAlI3Fsk7uvWrXNf+cpXBj4MR0ZG3JOe9CS3zTbb9Gy7irh///vfd49//OOD4u51YZBXlrgHYVShQAL4+F9++eXuzDPPdOedd5676KKL3LXXXuvufOc7u/vd737uiU98ottzzz3dTW96074top3f//737pRTTnFnn322u+SSS9wtb3lLd//73989+clPdvvvv7+7xS1uURoVLoAvuOACd8YZZ7gf/OAH7re//W3Wzn3ucx/30Ic+NPscbb/99qXtXH311VkbX/3qVzf2aY899nAPf/jDs8/6Djvs4DqdTmk7oQUG1f9u57vuuuvchz70IffmN785YzAzM+Nufetbh4ZWmrdB5L/bScAEOXjFK17hdtppp6wPGFcWx3e+8x33ohe9yO23337u9a9/fekdT0ywIK6QoyrzQXzG/vSnP7np6Wm3du3akJA3mzwKquQV+te//uXm5uayz/OPfvSj7DsCuXvgAx/oDjroILf77ru7rbbaqrTZK6+80q1Zs8adddZZDr+D11xzTfbZu+997+tWrFjh9t1336DvhdITqcBQEZC4t0jcGQFmRnHIF/MgxH3bbbd1u+66a9cvvD//+c+Z7EjcmcypbBUCkORPfOIT7vjjj89kvdeBH9fXve51buedd+5aBGJ5+umnZ2Xww9ztgMCvXr3a7bLLLj3P89Of/tS96U1vct/85jd7lsFnCML1tKc9rac4/PCHP8zK/OxnP+vaDi4Ejj76aPf0pz+99IIkhO+g+t/rXOeff7578YtfnMlTyHdVSMwoM6j89zrfr3/96+zuJMTvHve4h5m4/+QnP3HHHHNMdp5nPOMZpeKO5YwYi+9973uDUFVhPijGP//5z92hhx7qMHkVchTv+obUycvgtwgXP6eddlrPargYP/bYYx1eANjtwGcCkwFv/f/tnW3MXsOfx+dq0RWpBv2XVG6pRBZR5YUlpSqsqEhZIezNC1WNh5R4KGkiQkITfxKV6iZYTwnx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n4R7T7DroSIgAiIgAiIgAn1AQMJdwr0PumF4ESTcw1npShEQAREQAREQgcEiIOEu4d6qHi3h3qrmUmFFQAREQAREQAQSEpBwl3BP2J26n5WEe/cZ6wkiIAIiIAIiIAL9SUDCXcK9P3tmQakk3FvVXCqsCIiACIiACIhAQgIS7hLuCbtT97OScO8+Yz1BBERABERABESgPwlIuEu492fPlMW9Ve2iwoqACIiACIiACHSfgIS7hHv3e1nCJ8jinhCmshIBERABERABEWgVAQl3CffWdlhX8F4eQNAqeCqsCIiACIiACIhAqwlIuPdIuM+cOdMsWbKk1Z2nF4X//vvvzSuvvDLxaHHsRSvomSIgAiIgAiIgAr0g4OugXhouh+rk1GeeecbstNNO5rvvvutFm7f+mSMjI2bbtm0G0S6OrW9OVUAEREAEREAERCCCgNNBEu4R0Ope+sknn5jXXnutUrTvv//+dR8xEPeNjY2V1mP27Nnm999/r+Q4EDByKjHs/WNQ21X1EgEREAERiCNQpRficmvP1Yj30dHRnhV4aCzuPSOsB4uACIiACIiACIiACIhAAgIS7gkgKgsREAEREAEREAEREAER6DYBCfduE1b+IiACIiACIiACIiACIpCAgIR7AojKQgREQAREQAREQAREQAS6TUDCvduElb8IiIAIiIAIiIAIiIAIJCAg4Z4AorIQAREQAREQAREQAREQgW4TkHDvNmHlLwIiIAIiIAIiIAIiIAIJCEi4J4CoLERABERABERABERABESg2wQk3LtNWPmLgAiIgAiIgAiIgAiIQAICEu4JICoLERABERABERABERABEeg2AQn3bhNW/iIgAiIgAiIgAiIgAiKQgEAvhfvnxpiRBHVQFiIgAiIgAiIgAiIgAiIw6AQ+6XQ6f1+3kp26N3Lf+Pj4vxpjLmqSh+4VAREQAREQAREQAREQgSEhcFen01lZt65NhfsJxpjNdR+u+0RABERABERABERABERgiAj8Y6fT+c+69W0q3GcYY/6n7sN1nwiIgAiIgAiIgAiIgAgMEYG/63Q6v9atbyPhzkPHx8cvMMbcX7cAuk8EREAEREAEREAEREAEhoDAOZ1O5/Em9Uwh3MnjP4wxJzUpiO4VAREQAREQAREQAREQgQEl8O/GmH/qdDrjTerXWLj/aXXHZeZvxpjDmhRG94qACIiACIiACIiACIjAgBH4L2PMP3Q6nf9tWq8kwv1P8b6TMeYOY0ztnbJNK6P7RUAEREAEREAEREAERKCPCPyLMWZVp9P5vxRlSibcXWHGx8eJTXmTMeafUxRQeYiACIiACIiACIiACIhAywj8mzHmhk6n83HKcicX7p6AxwL/F2PMHGPMrikLrbxEQAREQAREQAREQAREoM8IEGnxK2PMf6eysGfr1zXh3mcgVRwREAEREAEREAEREAERaDUBCfdWN58KLwIiIAIiIAIiIAIiMCwEJNyHpaVVTxEQAREQAREQAREQgVYTkHBvdfOp8CIgAiIgAiIgAiIgAsNCQMJ9WFpa9RQBERABERABERABEWg1AQn3VjefCi8CIiACIiACIiACIjAsBCTch6WlVU8REAEREAEREAEREIFWE5Bwb3XzqfAiIAIiIAIiIAIiIALDQkDCfVhaWvUUAREQAREQAREQARFoNQEJ91Y3nwovAiIgAiIgAiIgAiIwLAT+H8Mkfc5q9OHLAAAAAElFTkSuQmCC";; + + //闈欐�佸浘鐗� + HanyinPlugin.Expanded({x,y,img:url,type:0,light:0},result=>{ + console.log(result); + }) + + }, + "qrCode":function(list,data,printIndex){ + // console.log(x,y,QRData); + let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE; + let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE; + let QRData = data[list.dataId]; + let width = filterData.size_conversion(Number(list.width)); + let m = "2"; + // filterData.size_conversion(Number(list.width)) + let u = filterData.size_conversion(Number(list.width)) - 6; + console.log(x,y,m,u,QRData); + //浜岀淮鐮� + HanyinPlugin.PrintQR({command:0,x,y,m,u,data:QRData},result=>{ + console.log(result); + }) + } +} +//鎵ц妯℃澘鎵撳嵃鎸囦护 +const Print_Template = { + // 姹夊嵃妯℃澘 + hanyin(data,printIndex) { + // let {pagConfig,printItem} = printTemplate; + // pageLeft = Number(pagConfig.pageLeft); + // pageTop = Number(pagConfig.pageTop); + // pageHeight = Number(pagConfig.pageHeight); + // pageWidth = Number(pagConfig.pageWidth); + // console.log(pageLeft,pageTop,pageHeight,pageWidth); + // 璁剧疆椤甸潰 + HanyinPlugin.PrintAreaSize({ + offset: "0", + Horizontal: "200", + Vertical: "200", + Height: (pageHeight + pageTop) * MULTIPLE +"", + Qty: "1" + }, result => { + console.log(result); + }) + //鎵撳嵃瀹藉害 + HanyinPlugin.PageWidth({ + pw: (pageWidth + pageLeft) * MULTIPLE + }, result => { + console.log(result); + }) + //閬嶅巻妯℃澘鎺т欢 + printItem.forEach(item=>{ + instructions[item.type](item,data,printIndex); + }); + //鍚姩鎵撳嵃 + HanyinPlugin.Form(result => { + console.log(result); + }) + HanyinPlugin.Print(result => { + console.log(result); + if (result.state > 0) { + uni.showToast({ + icon: "none", + title: "鎵撳嵃姝e父", + duration: 2000 + }) + } else { + uni.showToast({ + icon: "none", + title: "鎵撳嵃寮傚父", + duration: 2000 + }) + } + }) + } +} + +//鎵撳嵃鏈鸿繛鎺ユ寚浠� +export default class printConnect { + constructor(options) { + /** + *1.鏍规嵁钃濈墮鍚嶇О鍒ゆ柇鎵撳嵃鏈虹被鍨� + *2.杩炴帴鎸囧畾鎵撳嵃鏈� + */ + console.log(options); + this.name = options.name; //钃濈墮鎵撳嵃鏈哄悕绉� + this.mac = options.mac; //钃濈墮鎵撳嵃鏈哄湴鍧� + this.isConnect = false; //鏄惁杩炴帴鎵撳嵃鏈哄紑鍏� + this.printIndex = null; //鎵撳嵃鏈烘爣璇� + this.print_sign(this.name); + } + //鍒ゆ柇鎵撳嵃鏈虹墝瀛�,鎵撳嵃鍑洪潰鍗� + print_sign(name) { + uni.showLoading({ + title: "杩炴帴涓�...", + mask: true + }) + //鍒ゆ柇鎵撳嵃鏈哄悕绉版槸浠ヤ粈涔堝紑澶� + console.log("姹夊嵃鎵撳嵃鏈�"); + this.connect_hanyin(this.mac); + + } + //姹夊嵃鎵撳嵃鏈鸿繛鎺� + connect_hanyin(mac) { + this.disconnect(); + HanyinPlugin.PortOpenBT({ + mac + }, result => { + console.log('閾炬帴缁撴灉:' + JSON.stringify(result)); + switch (result.state) { + case 0: + title = "杩炴帴鎴愬姛"; + this.isConnect = true; + // store.dispatch(SET_CONNECTBLEDATA, {name:this.name,mac:this.mac}); + break; + case -1: + title = "杩炴帴寮傚父"; + this.connect_hanyin(); + break; + case -2: + title = "鍦板潃鏍煎紡閿欒"; + break; + case -3: + title = "鎻℃墜鎸囦护閿欒"; + break; + default: + title = ""; + } + uni.hideLoading(); + uni.showToast({ + icon: "none", + title, + duration: 2000 + }) + }) + } + //鍚姩鎵撳嵃鍛戒护 + startPrint(data) { + console.log(data); + console.log(this.printIndex); + // obj 璁㈠崟鏁版嵁 + //姹夊嵃 + Print_Template.hanyin(data,this.printIndex); + } + //鏂紑鎵撳嵃鏈鸿繛鎺� + disconnect() { + HanyinPlugin.PortClose(result => { + console.log(result); + }); + } +} diff --git a/main.js b/main.js index af98bb7..e40b387 100644 --- a/main.js +++ b/main.js @@ -3,6 +3,15 @@ // #ifndef VUE3 import Vue from 'vue' Vue.config.productionTip = false + +import '@/common/bluetooth.js'; +//鍏ㄥ眬鏁版嵁鐘舵�佺鐞� vuex +import store from '@/store/index.js'; +Vue.prototype.$store = store; +//鍏ㄥ眬鍏敤闈欐�佹暟鎹� +import Mock from '@/common/mock/index.js'; +Vue.prototype.$Mock = Mock; + App.mpType = 'app' try { diff --git a/manifest.json b/manifest.json index 2a665b5..11c09df 100644 --- a/manifest.json +++ b/manifest.json @@ -17,7 +17,9 @@ "delay" : 0 }, /* 妯″潡閰嶇疆 */ - "modules" : {}, + "modules" : { + "Bluetooth" : {} + }, /* 搴旂敤鍙戝竷淇℃伅 */ "distribute" : { /* android鎵撳寘閰嶇疆 */ diff --git a/nativeplugins/Hanyin-Plugin/android/AndroidManifest.xml b/nativeplugins/Hanyin-Plugin/android/AndroidManifest.xml new file mode 100644 index 0000000..bb12110 --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/android/AndroidManifest.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.example.hanyin_plugin" + android:versionCode="1" + android:versionName="1.0.4" > + + <uses-sdk + android:minSdkVersion="19" + android:targetSdkVersion="31" /> + +</manifest> \ No newline at end of file diff --git a/nativeplugins/Hanyin-Plugin/android/META-INF/com/android/build/gradle/aar-metadata.properties b/nativeplugins/Hanyin-Plugin/android/META-INF/com/android/build/gradle/aar-metadata.properties new file mode 100644 index 0000000..d8560bd --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/android/META-INF/com/android/build/gradle/aar-metadata.properties @@ -0,0 +1,2 @@ +aarFormatVersion=1.0 +aarMetadataVersion=1.0 diff --git a/nativeplugins/Hanyin-Plugin/android/R.txt b/nativeplugins/Hanyin-Plugin/android/R.txt new file mode 100644 index 0000000..8b34a1f --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/android/R.txt @@ -0,0 +1,2471 @@ +int anim abc_fade_in 0x0 +int anim abc_fade_out 0x0 +int anim abc_grow_fade_in_from_bottom 0x0 +int anim abc_popup_enter 0x0 +int anim abc_popup_exit 0x0 +int anim abc_shrink_fade_out_from_bottom 0x0 +int anim abc_slide_in_bottom 0x0 +int anim abc_slide_in_top 0x0 +int anim abc_slide_out_bottom 0x0 +int anim abc_slide_out_top 0x0 +int anim abc_tooltip_enter 0x0 +int anim abc_tooltip_exit 0x0 +int anim dcloud_page_close_enter 0x0 +int anim dcloud_page_close_exit 0x0 +int anim dcloud_page_open_enter 0x0 +int anim dcloud_page_open_exit 0x0 +int anim dcloud_pop_in 0x0 +int anim dcloud_pop_in_out 0x0 +int anim dcloud_pop_out 0x0 +int anim dcloud_slide_in_from_right 0x0 +int anim dcloud_slide_in_from_top 0x0 +int anim dcloud_slide_out_to_right 0x0 +int anim dcloud_slide_out_to_top 0x0 +int anim dcloud_slide_right_in 0x0 +int anim dcloud_slide_right_out 0x0 +int anim dcloud_slide_static 0x0 +int anim image_dialog_enter 0x0 +int anim image_dialog_exit 0x0 +int anim image_fade_in 0x0 +int anim image_fade_out 0x0 +int attr actionBarDivider 0x0 +int attr actionBarItemBackground 0x0 +int attr actionBarPopupTheme 0x0 +int attr actionBarSize 0x0 +int attr actionBarSplitStyle 0x0 +int attr actionBarStyle 0x0 +int attr actionBarTabBarStyle 0x0 +int attr actionBarTabStyle 0x0 +int attr actionBarTabTextStyle 0x0 +int attr actionBarTheme 0x0 +int attr actionBarWidgetTheme 0x0 +int attr actionButtonStyle 0x0 +int attr actionDropDownStyle 0x0 +int attr actionLayout 0x0 +int attr actionMenuTextAppearance 0x0 +int attr actionMenuTextColor 0x0 +int attr actionModeBackground 0x0 +int attr actionModeCloseButtonStyle 0x0 +int attr actionModeCloseDrawable 0x0 +int attr actionModeCopyDrawable 0x0 +int attr actionModeCutDrawable 0x0 +int attr actionModeFindDrawable 0x0 +int attr actionModePasteDrawable 0x0 +int attr actionModePopupWindowStyle 0x0 +int attr actionModeSelectAllDrawable 0x0 +int attr actionModeShareDrawable 0x0 +int attr actionModeSplitBackground 0x0 +int attr actionModeStyle 0x0 +int attr actionModeWebSearchDrawable 0x0 +int attr actionOverflowButtonStyle 0x0 +int attr actionOverflowMenuStyle 0x0 +int attr actionProviderClass 0x0 +int attr actionSheetBackground 0x0 +int attr actionSheetPadding 0x0 +int attr actionSheetStyle 0x0 +int attr actionSheetTextSize 0x0 +int attr actionViewClass 0x0 +int attr activityChooserViewStyle 0x0 +int attr actualImageResource 0x0 +int attr actualImageScaleType 0x0 +int attr actualImageUri 0x0 +int attr alertDialogButtonGroupStyle 0x0 +int attr alertDialogCenterButtons 0x0 +int attr alertDialogStyle 0x0 +int attr alertDialogTheme 0x0 +int attr allowStacking 0x0 +int attr alpha 0x0 +int attr alphabeticModifiers 0x0 +int attr arrowHeadLength 0x0 +int attr arrowShaftLength 0x0 +int attr authPlay 0x0 +int attr autoCompleteTextViewStyle 0x0 +int attr autoSizeMaxTextSize 0x0 +int attr autoSizeMinTextSize 0x0 +int attr autoSizePresetSizes 0x0 +int attr autoSizeStepGranularity 0x0 +int attr autoSizeTextType 0x0 +int attr background 0x0 +int attr backgroundImage 0x0 +int attr backgroundSplit 0x0 +int attr backgroundStacked 0x0 +int attr backgroundTint 0x0 +int attr backgroundTintMode 0x0 +int attr barLength 0x0 +int attr borderlessButtonStyle 0x0 +int attr buttonBarButtonStyle 0x0 +int attr buttonBarNegativeButtonStyle 0x0 +int attr buttonBarNeutralButtonStyle 0x0 +int attr buttonBarPositiveButtonStyle 0x0 +int attr buttonBarStyle 0x0 +int attr buttonGravity 0x0 +int attr buttonIconDimen 0x0 +int attr buttonPanelSideLayout 0x0 +int attr buttonStyle 0x0 +int attr buttonStyleSmall 0x0 +int attr buttonTint 0x0 +int attr buttonTintMode 0x0 +int attr cancelButtonBackground 0x0 +int attr cancelButtonMarginTop 0x0 +int attr cancelButtonTextColor 0x0 +int attr checkboxStyle 0x0 +int attr checkedTextViewStyle 0x0 +int attr closeIcon 0x0 +int attr closeItemLayout 0x0 +int attr collapseContentDescription 0x0 +int attr collapseIcon 0x0 +int attr color 0x0 +int attr colorAccent 0x0 +int attr colorBackgroundFloating 0x0 +int attr colorButtonNormal 0x0 +int attr colorControlActivated 0x0 +int attr colorControlHighlight 0x0 +int attr colorControlNormal 0x0 +int attr colorError 0x0 +int attr colorPrimary 0x0 +int attr colorPrimaryDark 0x0 +int attr colorSwitchThumbNormal 0x0 +int attr commitIcon 0x0 +int attr contentDescription 0x0 +int attr contentInsetEnd 0x0 +int attr contentInsetEndWithActions 0x0 +int attr contentInsetLeft 0x0 +int attr contentInsetRight 0x0 +int attr contentInsetStart 0x0 +int attr contentInsetStartWithNavigation 0x0 +int attr controlBackground 0x0 +int attr coordinatorLayoutStyle 0x0 +int attr customNavigationLayout 0x0 +int attr defaultQueryHint 0x0 +int attr destructiveButtonTextColor 0x0 +int attr dialogCornerRadius 0x0 +int attr dialogPreferredPadding 0x0 +int attr dialogTheme 0x0 +int attr displayOptions 0x0 +int attr divider 0x0 +int attr dividerHorizontal 0x0 +int attr dividerPadding 0x0 +int attr dividerVertical 0x0 +int attr drawableSize 0x0 +int attr drawerArrowStyle 0x0 +int attr dropDownListViewStyle 0x0 +int attr dropdownListPreferredItemHeight 0x0 +int attr editTextBackground 0x0 +int attr editTextColor 0x0 +int attr editTextStyle 0x0 +int attr elevation 0x0 +int attr expandActivityOverflowButtonDrawable 0x0 +int attr fadeDuration 0x0 +int attr failureImage 0x0 +int attr failureImageScaleType 0x0 +int attr fastScrollEnabled 0x0 +int attr fastScrollHorizontalThumbDrawable 0x0 +int attr fastScrollHorizontalTrackDrawable 0x0 +int attr fastScrollVerticalThumbDrawable 0x0 +int attr fastScrollVerticalTrackDrawable 0x0 +int attr firstBaselineToTopHeight 0x0 +int attr font 0x0 +int attr fontFamily 0x0 +int attr fontProviderAuthority 0x0 +int attr fontProviderCerts 0x0 +int attr fontProviderFetchStrategy 0x0 +int attr fontProviderFetchTimeout 0x0 +int attr fontProviderPackage 0x0 +int attr fontProviderQuery 0x0 +int attr fontStyle 0x0 +int attr fontVariationSettings 0x0 +int attr fontWeight 0x0 +int attr freezesAnimation 0x0 +int attr gapBetweenBars 0x0 +int attr gifSource 0x0 +int attr gifSrc 0x0 +int attr goIcon 0x0 +int attr height 0x0 +int attr hideOnContentScroll 0x0 +int attr homeAsUpIndicator 0x0 +int attr homeLayout 0x0 +int attr icon 0x0 +int attr iconTint 0x0 +int attr iconTintMode 0x0 +int attr iconifiedByDefault 0x0 +int attr imageButtonStyle 0x0 +int attr image_color 0x0 +int attr image_gallery_select_shade 0x0 +int attr image_gallery_span_count 0x0 +int attr image_stroke_color 0x0 +int attr indeterminateProgressStyle 0x0 +int attr initialActivityCount 0x0 +int attr isLightTheme 0x0 +int attr isOpaque 0x0 +int attr itemPadding 0x0 +int attr keylines 0x0 +int attr lastBaselineToBottomHeight 0x0 +int attr layout 0x0 +int attr layoutManager 0x0 +int attr layout_anchor 0x0 +int attr layout_anchorGravity 0x0 +int attr layout_behavior 0x0 +int attr layout_dodgeInsetEdges 0x0 +int attr layout_insetEdge 0x0 +int attr layout_keyline 0x0 +int attr lineHeight 0x0 +int attr listChoiceBackgroundIndicator 0x0 +int attr listDividerAlertDialog 0x0 +int attr listItemLayout 0x0 +int attr listLayout 0x0 +int attr listMenuViewStyle 0x0 +int attr listPopupWindowStyle 0x0 +int attr listPreferredItemHeight 0x0 +int attr listPreferredItemHeightLarge 0x0 +int attr listPreferredItemHeightSmall 0x0 +int attr listPreferredItemPaddingLeft 0x0 +int attr listPreferredItemPaddingRight 0x0 +int attr logo 0x0 +int attr logoDescription 0x0 +int attr loopCount 0x0 +int attr maxButtonHeight 0x0 +int attr measureWithLargestChild 0x0 +int attr multiChoiceItemLayout 0x0 +int attr navigationContentDescription 0x0 +int attr navigationIcon 0x0 +int attr navigationMode 0x0 +int attr numericModifiers 0x0 +int attr otherButtonBottomBackground 0x0 +int attr otherButtonMiddleBackground 0x0 +int attr otherButtonSingleBackground 0x0 +int attr otherButtonSpacing 0x0 +int attr otherButtonTextColor 0x0 +int attr otherButtonTitleBackground 0x0 +int attr otherButtonTopBackground 0x0 +int attr overlapAnchor 0x0 +int attr overlayImage 0x0 +int attr paddingBottomNoButtons 0x0 +int attr paddingEnd 0x0 +int attr paddingStart 0x0 +int attr paddingTopNoTitle 0x0 +int attr panelBackground 0x0 +int attr panelMenuListTheme 0x0 +int attr panelMenuListWidth 0x0 +int attr placeholderImage 0x0 +int attr placeholderImageScaleType 0x0 +int attr playCount 0x0 +int attr popupMenuStyle 0x0 +int attr popupTheme 0x0 +int attr popupWindowStyle 0x0 +int attr preserveIconSpacing 0x0 +int attr pressedStateOverlayImage 0x0 +int attr progressBarAutoRotateInterval 0x0 +int attr progressBarImage 0x0 +int attr progressBarImageScaleType 0x0 +int attr progressBarPadding 0x0 +int attr progressBarStyle 0x0 +int attr queryBackground 0x0 +int attr queryHint 0x0 +int attr radioButtonStyle 0x0 +int attr ratingBarStyle 0x0 +int attr ratingBarStyleIndicator 0x0 +int attr ratingBarStyleSmall 0x0 +int attr retryImage 0x0 +int attr retryImageScaleType 0x0 +int attr reverseLayout 0x0 +int attr roundAsCircle 0x0 +int attr roundBottomEnd 0x0 +int attr roundBottomLeft 0x0 +int attr roundBottomRight 0x0 +int attr roundBottomStart 0x0 +int attr roundTopEnd 0x0 +int attr roundTopLeft 0x0 +int attr roundTopRight 0x0 +int attr roundTopStart 0x0 +int attr roundWithOverlayColor 0x0 +int attr roundedCornerRadius 0x0 +int attr roundingBorderColor 0x0 +int attr roundingBorderPadding 0x0 +int attr roundingBorderWidth 0x0 +int attr sb_background 0x0 +int attr sb_border_width 0x0 +int attr sb_button_color 0x0 +int attr sb_checked 0x0 +int attr sb_checked_color 0x0 +int attr sb_checkline_color 0x0 +int attr sb_checkline_width 0x0 +int attr sb_effect_duration 0x0 +int attr sb_enable_effect 0x0 +int attr sb_shadow_color 0x0 +int attr sb_shadow_effect 0x0 +int attr sb_shadow_offset 0x0 +int attr sb_shadow_radius 0x0 +int attr sb_show_indicator 0x0 +int attr sb_uncheck_color 0x0 +int attr sb_uncheckcircle_color 0x0 +int attr sb_uncheckcircle_radius 0x0 +int attr sb_uncheckcircle_width 0x0 +int attr searchHintIcon 0x0 +int attr searchIcon 0x0 +int attr searchViewStyle 0x0 +int attr seekBarStyle 0x0 +int attr selectableItemBackground 0x0 +int attr selectableItemBackgroundBorderless 0x0 +int attr showAsAction 0x0 +int attr showDividers 0x0 +int attr showText 0x0 +int attr showTitle 0x0 +int attr singleChoiceItemLayout 0x0 +int attr spanCount 0x0 +int attr spinBars 0x0 +int attr spinnerDropDownItemStyle 0x0 +int attr spinnerStyle 0x0 +int attr splitTrack 0x0 +int attr srcCompat 0x0 +int attr stackFromEnd 0x0 +int attr state_above_anchor 0x0 +int attr statusBarBackground 0x0 +int attr subMenuArrow 0x0 +int attr submitBackground 0x0 +int attr subtitle 0x0 +int attr subtitleTextAppearance 0x0 +int attr subtitleTextColor 0x0 +int attr subtitleTextStyle 0x0 +int attr suggestionRowLayout 0x0 +int attr switchMinWidth 0x0 +int attr switchPadding 0x0 +int attr switchStyle 0x0 +int attr switchTextAppearance 0x0 +int attr textAllCaps 0x0 +int attr textAppearanceLargePopupMenu 0x0 +int attr textAppearanceListItem 0x0 +int attr textAppearanceListItemSecondary 0x0 +int attr textAppearanceListItemSmall 0x0 +int attr textAppearancePopupMenuHeader 0x0 +int attr textAppearanceSearchResultSubtitle 0x0 +int attr textAppearanceSearchResultTitle 0x0 +int attr textAppearanceSmallPopupMenu 0x0 +int attr textColorAlertDialogListItem 0x0 +int attr textColorSearchUrl 0x0 +int attr theme 0x0 +int attr thickness 0x0 +int attr thumbTextPadding 0x0 +int attr thumbTint 0x0 +int attr thumbTintMode 0x0 +int attr tickMark 0x0 +int attr tickMarkTint 0x0 +int attr tickMarkTintMode 0x0 +int attr tint 0x0 +int attr tintMode 0x0 +int attr title 0x0 +int attr titleButtonTextColor 0x0 +int attr titleMargin 0x0 +int attr titleMarginBottom 0x0 +int attr titleMarginEnd 0x0 +int attr titleMarginStart 0x0 +int attr titleMarginTop 0x0 +int attr titleMargins 0x0 +int attr titleTextAppearance 0x0 +int attr titleTextColor 0x0 +int attr titleTextStyle 0x0 +int attr toolbarNavigationButtonStyle 0x0 +int attr toolbarStyle 0x0 +int attr tooltipForegroundColor 0x0 +int attr tooltipFrameBackground 0x0 +int attr tooltipText 0x0 +int attr track 0x0 +int attr trackTint 0x0 +int attr trackTintMode 0x0 +int attr ttcIndex 0x0 +int attr viewAspectRatio 0x0 +int attr viewInflaterClass 0x0 +int attr voiceIcon 0x0 +int attr windowActionBar 0x0 +int attr windowActionBarOverlay 0x0 +int attr windowActionModeOverlay 0x0 +int attr windowFixedHeightMajor 0x0 +int attr windowFixedHeightMinor 0x0 +int attr windowFixedWidthMajor 0x0 +int attr windowFixedWidthMinor 0x0 +int attr windowMinWidthMajor 0x0 +int attr windowMinWidthMinor 0x0 +int attr windowNoTitle 0x0 +int bool abc_action_bar_embed_tabs 0x0 +int bool abc_allow_stacked_button_bar 0x0 +int bool abc_config_actionMenuItemAllCaps 0x0 +int bool weex_is_right_to_left 0x0 +int color abc_background_cache_hint_selector_material_dark 0x0 +int color abc_background_cache_hint_selector_material_light 0x0 +int color abc_btn_colored_borderless_text_material 0x0 +int color abc_btn_colored_text_material 0x0 +int color abc_color_highlight_material 0x0 +int color abc_hint_foreground_material_dark 0x0 +int color abc_hint_foreground_material_light 0x0 +int color abc_input_method_navigation_guard 0x0 +int color abc_primary_text_disable_only_material_dark 0x0 +int color abc_primary_text_disable_only_material_light 0x0 +int color abc_primary_text_material_dark 0x0 +int color abc_primary_text_material_light 0x0 +int color abc_search_url_text 0x0 +int color abc_search_url_text_normal 0x0 +int color abc_search_url_text_pressed 0x0 +int color abc_search_url_text_selected 0x0 +int color abc_secondary_text_material_dark 0x0 +int color abc_secondary_text_material_light 0x0 +int color abc_tint_btn_checkable 0x0 +int color abc_tint_default 0x0 +int color abc_tint_edittext 0x0 +int color abc_tint_seek_thumb 0x0 +int color abc_tint_spinner 0x0 +int color abc_tint_switch_track 0x0 +int color accent_material_dark 0x0 +int color accent_material_light 0x0 +int color background_floating_material_dark 0x0 +int color background_floating_material_light 0x0 +int color background_material_dark 0x0 +int color background_material_light 0x0 +int color black 0x0 +int color bright_foreground_disabled_material_dark 0x0 +int color bright_foreground_disabled_material_light 0x0 +int color bright_foreground_inverse_material_dark 0x0 +int color bright_foreground_inverse_material_light 0x0 +int color bright_foreground_material_dark 0x0 +int color bright_foreground_material_light 0x0 +int color button_material_dark 0x0 +int color button_material_light 0x0 +int color dadada 0x0 +int color dcloud_gallery_default_text_color 0x0 +int color dcloud_slt_about_text_color 0x0 +int color dim_foreground_disabled_material_dark 0x0 +int color dim_foreground_disabled_material_light 0x0 +int color dim_foreground_material_dark 0x0 +int color dim_foreground_material_light 0x0 +int color e4e4e4 0x0 +int color error_color_material_dark 0x0 +int color error_color_material_light 0x0 +int color ffffff 0x0 +int color foreground_material_dark 0x0 +int color foreground_material_light 0x0 +int color highlighted_text_material_dark 0x0 +int color highlighted_text_material_light 0x0 +int color image_color_accent 0x0 +int color image_color_backgroud 0x0 +int color image_color_black 0x0 +int color image_color_blue 0x0 +int color image_color_cyan 0x0 +int color image_color_green 0x0 +int color image_color_primary 0x0 +int color image_color_purple 0x0 +int color image_color_red 0x0 +int color image_color_text 0x0 +int color image_color_white 0x0 +int color image_color_yellow 0x0 +int color image_pick_title_btn_normal 0x0 +int color image_pick_title_btn_pressed 0x0 +int color ime_background 0x0 +int color material_blue_grey_800 0x0 +int color material_blue_grey_900 0x0 +int color material_blue_grey_950 0x0 +int color material_deep_teal_200 0x0 +int color material_deep_teal_500 0x0 +int color material_grey_100 0x0 +int color material_grey_300 0x0 +int color material_grey_50 0x0 +int color material_grey_600 0x0 +int color material_grey_800 0x0 +int color material_grey_850 0x0 +int color material_grey_900 0x0 +int color notification_action_color_filter 0x0 +int color notification_icon_bg_color 0x0 +int color notification_material_background_media_default_color 0x0 +int color primary_dark_material_dark 0x0 +int color primary_dark_material_light 0x0 +int color primary_material_dark 0x0 +int color primary_material_light 0x0 +int color primary_text_default_material_dark 0x0 +int color primary_text_default_material_light 0x0 +int color primary_text_disabled_material_dark 0x0 +int color primary_text_disabled_material_light 0x0 +int color purple_200 0x0 +int color purple_500 0x0 +int color purple_700 0x0 +int color ripple_material_dark 0x0 +int color ripple_material_light 0x0 +int color secondary_text_default_material_dark 0x0 +int color secondary_text_default_material_light 0x0 +int color secondary_text_disabled_material_dark 0x0 +int color secondary_text_disabled_material_light 0x0 +int color switch_thumb_disabled_material_dark 0x0 +int color switch_thumb_disabled_material_light 0x0 +int color switch_thumb_material_dark 0x0 +int color switch_thumb_material_light 0x0 +int color switch_thumb_normal_material_dark 0x0 +int color switch_thumb_normal_material_light 0x0 +int color teal_200 0x0 +int color teal_700 0x0 +int color tooltip_background_dark 0x0 +int color tooltip_background_light 0x0 +int color white 0x0 +int dimen abc_action_bar_content_inset_material 0x0 +int dimen abc_action_bar_content_inset_with_nav 0x0 +int dimen abc_action_bar_default_height_material 0x0 +int dimen abc_action_bar_default_padding_end_material 0x0 +int dimen abc_action_bar_default_padding_start_material 0x0 +int dimen abc_action_bar_elevation_material 0x0 +int dimen abc_action_bar_icon_vertical_padding_material 0x0 +int dimen abc_action_bar_overflow_padding_end_material 0x0 +int dimen abc_action_bar_overflow_padding_start_material 0x0 +int dimen abc_action_bar_stacked_max_height 0x0 +int dimen abc_action_bar_stacked_tab_max_width 0x0 +int dimen abc_action_bar_subtitle_bottom_margin_material 0x0 +int dimen abc_action_bar_subtitle_top_margin_material 0x0 +int dimen abc_action_button_min_height_material 0x0 +int dimen abc_action_button_min_width_material 0x0 +int dimen abc_action_button_min_width_overflow_material 0x0 +int dimen abc_alert_dialog_button_bar_height 0x0 +int dimen abc_alert_dialog_button_dimen 0x0 +int dimen abc_button_inset_horizontal_material 0x0 +int dimen abc_button_inset_vertical_material 0x0 +int dimen abc_button_padding_horizontal_material 0x0 +int dimen abc_button_padding_vertical_material 0x0 +int dimen abc_cascading_menus_min_smallest_width 0x0 +int dimen abc_config_prefDialogWidth 0x0 +int dimen abc_control_corner_material 0x0 +int dimen abc_control_inset_material 0x0 +int dimen abc_control_padding_material 0x0 +int dimen abc_dialog_corner_radius_material 0x0 +int dimen abc_dialog_fixed_height_major 0x0 +int dimen abc_dialog_fixed_height_minor 0x0 +int dimen abc_dialog_fixed_width_major 0x0 +int dimen abc_dialog_fixed_width_minor 0x0 +int dimen abc_dialog_list_padding_bottom_no_buttons 0x0 +int dimen abc_dialog_list_padding_top_no_title 0x0 +int dimen abc_dialog_min_width_major 0x0 +int dimen abc_dialog_min_width_minor 0x0 +int dimen abc_dialog_padding_material 0x0 +int dimen abc_dialog_padding_top_material 0x0 +int dimen abc_dialog_title_divider_material 0x0 +int dimen abc_disabled_alpha_material_dark 0x0 +int dimen abc_disabled_alpha_material_light 0x0 +int dimen abc_dropdownitem_icon_width 0x0 +int dimen abc_dropdownitem_text_padding_left 0x0 +int dimen abc_dropdownitem_text_padding_right 0x0 +int dimen abc_edit_text_inset_bottom_material 0x0 +int dimen abc_edit_text_inset_horizontal_material 0x0 +int dimen abc_edit_text_inset_top_material 0x0 +int dimen abc_floating_window_z 0x0 +int dimen abc_list_item_padding_horizontal_material 0x0 +int dimen abc_panel_menu_list_width 0x0 +int dimen abc_progress_bar_height_material 0x0 +int dimen abc_search_view_preferred_height 0x0 +int dimen abc_search_view_preferred_width 0x0 +int dimen abc_seekbar_track_background_height_material 0x0 +int dimen abc_seekbar_track_progress_height_material 0x0 +int dimen abc_select_dialog_padding_start_material 0x0 +int dimen abc_switch_padding 0x0 +int dimen abc_text_size_body_1_material 0x0 +int dimen abc_text_size_body_2_material 0x0 +int dimen abc_text_size_button_material 0x0 +int dimen abc_text_size_caption_material 0x0 +int dimen abc_text_size_display_1_material 0x0 +int dimen abc_text_size_display_2_material 0x0 +int dimen abc_text_size_display_3_material 0x0 +int dimen abc_text_size_display_4_material 0x0 +int dimen abc_text_size_headline_material 0x0 +int dimen abc_text_size_large_material 0x0 +int dimen abc_text_size_medium_material 0x0 +int dimen abc_text_size_menu_header_material 0x0 +int dimen abc_text_size_menu_material 0x0 +int dimen abc_text_size_small_material 0x0 +int dimen abc_text_size_subhead_material 0x0 +int dimen abc_text_size_subtitle_material_toolbar 0x0 +int dimen abc_text_size_title_material 0x0 +int dimen abc_text_size_title_material_toolbar 0x0 +int dimen compat_button_inset_horizontal_material 0x0 +int dimen compat_button_inset_vertical_material 0x0 +int dimen compat_button_padding_horizontal_material 0x0 +int dimen compat_button_padding_vertical_material 0x0 +int dimen compat_control_corner_material 0x0 +int dimen compat_notification_large_icon_max_height 0x0 +int dimen compat_notification_large_icon_max_width 0x0 +int dimen dcloud_wel_base_content_space 0x0 +int dimen dcloud_wel_base_content_space_2 0x0 +int dimen dcloud_wel_base_content_text_min_size 0x0 +int dimen disabled_alpha_material_dark 0x0 +int dimen disabled_alpha_material_light 0x0 +int dimen fastscroll_default_thickness 0x0 +int dimen fastscroll_margin 0x0 +int dimen fastscroll_minimum_range 0x0 +int dimen highlight_alpha_material_colored 0x0 +int dimen highlight_alpha_material_dark 0x0 +int dimen highlight_alpha_material_light 0x0 +int dimen hint_alpha_material_dark 0x0 +int dimen hint_alpha_material_light 0x0 +int dimen hint_pressed_alpha_material_dark 0x0 +int dimen hint_pressed_alpha_material_light 0x0 +int dimen image_color 0x0 +int dimen image_color_margin 0x0 +int dimen image_mode_space 0x0 +int dimen item_touch_helper_max_drag_scroll_per_frame 0x0 +int dimen item_touch_helper_swipe_escape_max_velocity 0x0 +int dimen item_touch_helper_swipe_escape_velocity 0x0 +int dimen notification_action_icon_size 0x0 +int dimen notification_action_text_size 0x0 +int dimen notification_big_circle_margin 0x0 +int dimen notification_content_margin_start 0x0 +int dimen notification_large_icon_height 0x0 +int dimen notification_large_icon_width 0x0 +int dimen notification_main_column_padding_top 0x0 +int dimen notification_media_narrow_margin 0x0 +int dimen notification_right_icon_size 0x0 +int dimen notification_right_side_padding_top 0x0 +int dimen notification_small_icon_background_padding 0x0 +int dimen notification_small_icon_size_as_large 0x0 +int dimen notification_subtext_size 0x0 +int dimen notification_top_pad 0x0 +int dimen notification_top_pad_large_text 0x0 +int dimen subtitle_corner_radius 0x0 +int dimen subtitle_outline_width 0x0 +int dimen subtitle_shadow_offset 0x0 +int dimen subtitle_shadow_radius 0x0 +int dimen tooltip_corner_radius 0x0 +int dimen tooltip_horizontal_padding 0x0 +int dimen tooltip_margin 0x0 +int dimen tooltip_precise_anchor_extra_offset 0x0 +int dimen tooltip_precise_anchor_threshold 0x0 +int dimen tooltip_vertical_padding 0x0 +int dimen tooltip_y_offset_non_touch 0x0 +int dimen tooltip_y_offset_touch 0x0 +int drawable abc_ab_share_pack_mtrl_alpha 0x0 +int drawable abc_action_bar_item_background_material 0x0 +int drawable abc_btn_borderless_material 0x0 +int drawable abc_btn_check_material 0x0 +int drawable abc_btn_check_to_on_mtrl_000 0x0 +int drawable abc_btn_check_to_on_mtrl_015 0x0 +int drawable abc_btn_colored_material 0x0 +int drawable abc_btn_default_mtrl_shape 0x0 +int drawable abc_btn_radio_material 0x0 +int drawable abc_btn_radio_to_on_mtrl_000 0x0 +int drawable abc_btn_radio_to_on_mtrl_015 0x0 +int drawable abc_btn_switch_to_on_mtrl_00001 0x0 +int drawable abc_btn_switch_to_on_mtrl_00012 0x0 +int drawable abc_cab_background_internal_bg 0x0 +int drawable abc_cab_background_top_material 0x0 +int drawable abc_cab_background_top_mtrl_alpha 0x0 +int drawable abc_control_background_material 0x0 +int drawable abc_dialog_material_background 0x0 +int drawable abc_edit_text_material 0x0 +int drawable abc_ic_ab_back_material 0x0 +int drawable abc_ic_arrow_drop_right_black_24dp 0x0 +int drawable abc_ic_clear_material 0x0 +int drawable abc_ic_commit_search_api_mtrl_alpha 0x0 +int drawable abc_ic_go_search_api_material 0x0 +int drawable abc_ic_menu_copy_mtrl_am_alpha 0x0 +int drawable abc_ic_menu_cut_mtrl_alpha 0x0 +int drawable abc_ic_menu_overflow_material 0x0 +int drawable abc_ic_menu_paste_mtrl_am_alpha 0x0 +int drawable abc_ic_menu_selectall_mtrl_alpha 0x0 +int drawable abc_ic_menu_share_mtrl_alpha 0x0 +int drawable abc_ic_search_api_material 0x0 +int drawable abc_ic_star_black_16dp 0x0 +int drawable abc_ic_star_black_36dp 0x0 +int drawable abc_ic_star_black_48dp 0x0 +int drawable abc_ic_star_half_black_16dp 0x0 +int drawable abc_ic_star_half_black_36dp 0x0 +int drawable abc_ic_star_half_black_48dp 0x0 +int drawable abc_ic_voice_search_api_material 0x0 +int drawable abc_item_background_holo_dark 0x0 +int drawable abc_item_background_holo_light 0x0 +int drawable abc_list_divider_material 0x0 +int drawable abc_list_divider_mtrl_alpha 0x0 +int drawable abc_list_focused_holo 0x0 +int drawable abc_list_longpressed_holo 0x0 +int drawable abc_list_pressed_holo_dark 0x0 +int drawable abc_list_pressed_holo_light 0x0 +int drawable abc_list_selector_background_transition_holo_dark 0x0 +int drawable abc_list_selector_background_transition_holo_light 0x0 +int drawable abc_list_selector_disabled_holo_dark 0x0 +int drawable abc_list_selector_disabled_holo_light 0x0 +int drawable abc_list_selector_holo_dark 0x0 +int drawable abc_list_selector_holo_light 0x0 +int drawable abc_menu_hardkey_panel_mtrl_mult 0x0 +int drawable abc_popup_background_mtrl_mult 0x0 +int drawable abc_ratingbar_indicator_material 0x0 +int drawable abc_ratingbar_material 0x0 +int drawable abc_ratingbar_small_material 0x0 +int drawable abc_scrubber_control_off_mtrl_alpha 0x0 +int drawable abc_scrubber_control_to_pressed_mtrl_000 0x0 +int drawable abc_scrubber_control_to_pressed_mtrl_005 0x0 +int drawable abc_scrubber_primary_mtrl_alpha 0x0 +int drawable abc_scrubber_track_mtrl_alpha 0x0 +int drawable abc_seekbar_thumb_material 0x0 +int drawable abc_seekbar_tick_mark_material 0x0 +int drawable abc_seekbar_track_material 0x0 +int drawable abc_spinner_mtrl_am_alpha 0x0 +int drawable abc_spinner_textfield_background_material 0x0 +int drawable abc_switch_thumb_material 0x0 +int drawable abc_switch_track_mtrl_alpha 0x0 +int drawable abc_tab_indicator_material 0x0 +int drawable abc_tab_indicator_mtrl_alpha 0x0 +int drawable abc_text_cursor_material 0x0 +int drawable abc_text_select_handle_left_mtrl_dark 0x0 +int drawable abc_text_select_handle_left_mtrl_light 0x0 +int drawable abc_text_select_handle_middle_mtrl_dark 0x0 +int drawable abc_text_select_handle_middle_mtrl_light 0x0 +int drawable abc_text_select_handle_right_mtrl_dark 0x0 +int drawable abc_text_select_handle_right_mtrl_light 0x0 +int drawable abc_textfield_activated_mtrl_alpha 0x0 +int drawable abc_textfield_default_mtrl_alpha 0x0 +int drawable abc_textfield_search_activated_mtrl_alpha 0x0 +int drawable abc_textfield_search_default_mtrl_alpha 0x0 +int drawable abc_textfield_search_material 0x0 +int drawable abc_vector_test 0x0 +int drawable ad_dcloud_main_ad_tag 0x0 +int drawable ad_dcloud_main_skip_bg 0x0 +int drawable ad_dcloud_main_skip_shape 0x0 +int drawable dcloud_about_buttons_bg 0x0 +int drawable dcloud_about_buttons_button_bg 0x0 +int drawable dcloud_actionsheet_bottom_normal 0x0 +int drawable dcloud_actionsheet_bottom_pressed 0x0 +int drawable dcloud_actionsheet_middle_normal 0x0 +int drawable dcloud_actionsheet_middle_pressed 0x0 +int drawable dcloud_actionsheet_single_normal 0x0 +int drawable dcloud_actionsheet_single_pressed 0x0 +int drawable dcloud_actionsheet_top_normal 0x0 +int drawable dcloud_actionsheet_top_pressed 0x0 +int drawable dcloud_ad_splash_ad_tag 0x0 +int drawable dcloud_ad_splash_click_btn_bg 0x0 +int drawable dcloud_ad_splash_skip_bg 0x0 +int drawable dcloud_ad_splash_skip_shape 0x0 +int drawable dcloud_ad_webview_activity_title_bg 0x0 +int drawable dcloud_as_bg_ios6 0x0 +int drawable dcloud_as_cancel_bt_bg 0x0 +int drawable dcloud_as_other_bt_bg 0x0 +int drawable dcloud_assistan_loc 0x0 +int drawable dcloud_circle_black_progress 0x0 +int drawable dcloud_circle_white_progress 0x0 +int drawable dcloud_custom_rich_dialog_button_bg_selecter 0x0 +int drawable dcloud_custom_rich_dialog_button_text_selecter 0x0 +int drawable dcloud_debug_shape 0x0 +int drawable dcloud_dialog_loading 0x0 +int drawable dcloud_dialog_shape 0x0 +int drawable dcloud_dialog_shape_bg 0x0 +int drawable dcloud_gallery_action_btn 0x0 +int drawable dcloud_gallery_btn_selected 0x0 +int drawable dcloud_gallery_btn_selected_drawable 0x0 +int drawable dcloud_gallery_btn_unselected 0x0 +int drawable dcloud_gallery_default_check 0x0 +int drawable dcloud_gallery_default_image 0x0 +int drawable dcloud_gallery_ic_back 0x0 +int drawable dcloud_gallery_text_indicator 0x0 +int drawable dcloud_gallery_video 0x0 +int drawable dcloud_left_arrow 0x0 +int drawable dcloud_longding_bg 0x0 +int drawable dcloud_point_dd524d 0x0 +int drawable dcloud_point_f32720 0x0 +int drawable dcloud_recent 0x0 +int drawable dcloud_record_border 0x0 +int drawable dcloud_record_view_line 0x0 +int drawable dcloud_right_arrow 0x0 +int drawable dcloud_shadow_left 0x0 +int drawable dcloud_shortcut_guide_huawei 0x0 +int drawable dcloud_shortcut_guide_meizu 0x0 +int drawable dcloud_shortcut_guide_xiaomi 0x0 +int drawable dcloud_slt_as_ios7_cancel_bt 0x0 +int drawable dcloud_slt_as_ios7_other_bt_bottom 0x0 +int drawable dcloud_slt_as_ios7_other_bt_middle 0x0 +int drawable dcloud_slt_as_ios7_other_bt_single 0x0 +int drawable dcloud_slt_as_ios7_other_bt_title 0x0 +int drawable dcloud_slt_as_ios7_other_bt_top 0x0 +int drawable dcloud_snow_black 0x0 +int drawable dcloud_snow_black_progress 0x0 +int drawable dcloud_snow_white 0x0 +int drawable dcloud_snow_white_progress 0x0 +int drawable dcloud_streamapp_about_feedback 0x0 +int drawable dcloud_streamapp_about_first_start_short_cut_checkbox 0x0 +int drawable dcloud_streamapp_about_first_start_short_cut_cheked 0x0 +int drawable dcloud_streamapp_about_first_start_short_cut_normal 0x0 +int drawable dcloud_streamapp_about_right_arrow 0x0 +int drawable dcloud_streamapp_about_share 0x0 +int drawable dcloud_streamapp_about_update 0x0 +int drawable dcloud_streamapp_icon 0x0 +int drawable dcloud_streamapp_icon_appdefault 0x0 +int drawable dcloud_tabbar_badge 0x0 +int drawable dcloud_tabbar_dot 0x0 +int drawable dcloud_webview_activity_title_bg 0x0 +int drawable image_bg_bottom 0x0 +int drawable image_bg_edit_check 0x0 +int drawable image_bg_top 0x0 +int drawable image_btn_finish 0x0 +int drawable image_btn_undo 0x0 +int drawable image_edit_cursor 0x0 +int drawable image_edit_trans_background 0x0 +int drawable notification_action_background 0x0 +int drawable notification_bg 0x0 +int drawable notification_bg_low 0x0 +int drawable notification_bg_low_normal 0x0 +int drawable notification_bg_low_pressed 0x0 +int drawable notification_bg_normal 0x0 +int drawable notification_bg_normal_pressed 0x0 +int drawable notification_icon_background 0x0 +int drawable notification_template_icon_bg 0x0 +int drawable notification_template_icon_low_bg 0x0 +int drawable notification_tile_bg 0x0 +int drawable notify_panel_notification_icon_bg 0x0 +int drawable offline_pin 0x0 +int drawable offline_pin_round 0x0 +int drawable shortcut_permission_guide_bg 0x0 +int drawable shortcut_permission_guide_close 0x0 +int drawable shortcut_permission_guide_play 0x0 +int drawable side_bar_bg 0x0 +int drawable side_bar_close 0x0 +int drawable side_bar_closebar 0x0 +int drawable side_bar_custom_menu_item_bg 0x0 +int drawable side_bar_custom_menu_item_line 0x0 +int drawable side_bar_custom_menu_item_selected 0x0 +int drawable side_bar_favorite 0x0 +int drawable side_bar_home 0x0 +int drawable side_bar_openbar 0x0 +int drawable side_bar_refresh 0x0 +int drawable side_bar_share 0x0 +int drawable sidebar_shortcut 0x0 +int drawable toast_bg 0x0 +int drawable tooltip_frame_dark 0x0 +int drawable tooltip_frame_light 0x0 +int drawable weex_error 0x0 +int id action0 0x0 +int id action_bar 0x0 +int id action_bar_activity_content 0x0 +int id action_bar_container 0x0 +int id action_bar_root 0x0 +int id action_bar_spinner 0x0 +int id action_bar_subtitle 0x0 +int id action_bar_title 0x0 +int id action_container 0x0 +int id action_context_bar 0x0 +int id action_divider 0x0 +int id action_image 0x0 +int id action_menu_divider 0x0 +int id action_menu_presenter 0x0 +int id action_mode_bar 0x0 +int id action_mode_bar_stub 0x0 +int id action_mode_close_button 0x0 +int id action_text 0x0 +int id actions 0x0 +int id activity_chooser_view_content 0x0 +int id ad_dcloud_icon 0x0 +int id ad_dcloud_icon_single 0x0 +int id ad_dcloud_main_adtext 0x0 +int id ad_dcloud_main_click 0x0 +int id ad_dcloud_main_img 0x0 +int id ad_dcloud_main_skip 0x0 +int id ad_dcloud_name 0x0 +int id ad_dcloud_root 0x0 +int id ad_dcloud_splash_bottom_bar 0x0 +int id ad_dcloud_splash_container 0x0 +int id add 0x0 +int id alertTitle 0x0 +int id async 0x0 +int id back 0x0 +int id bar_title 0x0 +int id bgImg 0x0 +int id blocking 0x0 +int id bottom 0x0 +int id bottom_content_layout 0x0 +int id btn_back 0x0 +int id btn_clip 0x0 +int id btn_custom_privacy_cancel 0x0 +int id btn_custom_privacy_sure 0x0 +int id btn_text 0x0 +int id btn_undo 0x0 +int id buttonPanel 0x0 +int id cancel 0x0 +int id cancel_action 0x0 +int id category_btn 0x0 +int id cb_box 0x0 +int id cb_original 0x0 +int id center 0x0 +int id centerCrop 0x0 +int id centerInside 0x0 +int id cg_colors 0x0 +int id check_image 0x0 +int id check_layout 0x0 +int id check_origin_image 0x0 +int id check_origin_image_layout 0x0 +int id checkbox 0x0 +int id chronometer 0x0 +int id close 0x0 +int id content 0x0 +int id contentPanel 0x0 +int id contentWrapper 0x0 +int id cover 0x0 +int id cr_red 0x0 +int id cr_white 0x0 +int id custom 0x0 +int id customLayout 0x0 +int id customPanel 0x0 +int id dcloud_dialog_btn1 0x0 +int id dcloud_dialog_btn2 0x0 +int id dcloud_dialog_icon 0x0 +int id dcloud_dialog_msg 0x0 +int id dcloud_dialog_rootview 0x0 +int id dcloud_dialog_title 0x0 +int id dcloud_guide_close 0x0 +int id dcloud_guide_gifview 0x0 +int id dcloud_guide_play 0x0 +int id dcloud_guide_play_layout 0x0 +int id dcloud_guide_tip 0x0 +int id dcloud_image_edit_foot 0x0 +int id dcloud_image_edit_head 0x0 +int id dcloud_iv_loading 0x0 +int id dcloud_pb_loading 0x0 +int id dcloud_pd_root 0x0 +int id dcloud_record_address_view_1 0x0 +int id dcloud_record_address_view_2 0x0 +int id dcloud_record_address_view_3 0x0 +int id dcloud_record_arrow_left 0x0 +int id dcloud_record_arrow_left_layout 0x0 +int id dcloud_record_arrow_right 0x0 +int id dcloud_record_arrow_right_layout 0x0 +int id dcloud_record_arrows 0x0 +int id dcloud_record_line_1 0x0 +int id dcloud_record_line_2 0x0 +int id dcloud_record_scroll_view 0x0 +int id dcloud_record_view_1 0x0 +int id dcloud_record_view_2 0x0 +int id dcloud_tv_loading 0x0 +int id dcloud_view_seaparator 0x0 +int id debugTV 0x0 +int id decor_content_parent 0x0 +int id default_activity_button 0x0 +int id delete 0x0 +int id dialog_title 0x0 +int id done 0x0 +int id edit_query 0x0 +int id end 0x0 +int id end_padder 0x0 +int id et_text 0x0 +int id expand_activities_button 0x0 +int id expanded_menu 0x0 +int id favoriteIcon 0x0 +int id fitBottomStart 0x0 +int id fitCenter 0x0 +int id fitEnd 0x0 +int id fitStart 0x0 +int id fitXY 0x0 +int id focusCrop 0x0 +int id footer 0x0 +int id forever 0x0 +int id gallery_preview_edit 0x0 +int id gif_info 0x0 +int id glide_custom_view_target_tag 0x0 +int id group_divider 0x0 +int id guide_title 0x0 +int id home 0x0 +int id ib_clip_cancel 0x0 +int id ib_clip_done 0x0 +int id ib_clip_rotate 0x0 +int id icon 0x0 +int id icon_group 0x0 +int id image 0x0 +int id image_btn_enable 0x0 +int id image_canvas 0x0 +int id image_menu_done 0x0 +int id image_rv_menu 0x0 +int id indicator 0x0 +int id info 0x0 +int id italic 0x0 +int id itemBadge 0x0 +int id itemDot 0x0 +int id item_touch_helper_previous_elevation 0x0 +int id layout_footer 0x0 +int id layout_op_sub 0x0 +int id left 0x0 +int id leftLayout 0x0 +int id line1 0x0 +int id line3 0x0 +int id listMode 0x0 +int id list_item 0x0 +int id ll_content_layout 0x0 +int id ll_title_bar 0x0 +int id loading 0x0 +int id loading_background 0x0 +int id logs 0x0 +int id mask_view 0x0 +int id media_actions 0x0 +int id media_image 0x0 +int id menu 0x0 +int id message 0x0 +int id midBTN 0x0 +int id multiply 0x0 +int id name 0x0 +int id none 0x0 +int id normal 0x0 +int id notification_background 0x0 +int id notification_main_column 0x0 +int id notification_main_column_container 0x0 +int id page 0x0 +int id pager 0x0 +int id parentPanel 0x0 +int id path 0x0 +int id photoview 0x0 +int id play_view 0x0 +int id preview 0x0 +int id progressBar 0x0 +int id progress_circular 0x0 +int id progress_horizontal 0x0 +int id query_page 0x0 +int id radio 0x0 +int id rb_doodle 0x0 +int id rb_mosaic 0x0 +int id rb_select 0x0 +int id recycler_view 0x0 +int id refresh 0x0 +int id rg_modes 0x0 +int id right 0x0 +int id rightLayout 0x0 +int id right_icon 0x0 +int id right_side 0x0 +int id rl_notification 0x0 +int id root 0x0 +int id rv_images 0x0 +int id screen 0x0 +int id scrollIndicatorDown 0x0 +int id scrollIndicatorUp 0x0 +int id scrollView 0x0 +int id search_badge 0x0 +int id search_bar 0x0 +int id search_button 0x0 +int id search_close_btn 0x0 +int id search_edit_frame 0x0 +int id search_go_btn 0x0 +int id search_mag_icon 0x0 +int id search_plate 0x0 +int id search_src_text 0x0 +int id search_voice_btn 0x0 +int id select_dialog_listview 0x0 +int id select_origin_image_text 0x0 +int id select_text 0x0 +int id set_priority 0x0 +int id shortcut 0x0 +int id sideBarButtonsLayout 0x0 +int id sideBarCloseLayout 0x0 +int id sideBarFavoriteLayout 0x0 +int id sideBarHomeLayout 0x0 +int id sideBarOpenOrCloseIV 0x0 +int id sideBarOpenOrCloseLayout 0x0 +int id sideBarOpenOrCloseTipIV 0x0 +int id sideBarReFreshLayout 0x0 +int id sideBarShareLayout 0x0 +int id size 0x0 +int id spacer 0x0 +int id split_action_bar 0x0 +int id src_atop 0x0 +int id src_in 0x0 +int id src_over 0x0 +int id start 0x0 +int id start_manage 0x0 +int id status_bar_latest_event_content 0x0 +int id status_bar_view 0x0 +int id submenuarrow 0x0 +int id submit_area 0x0 +int id sure 0x0 +int id tab0 0x0 +int id tab1 0x0 +int id tab2 0x0 +int id tab3 0x0 +int id tabIV 0x0 +int id tabMode 0x0 +int id tabTV 0x0 +int id tag_transition_group 0x0 +int id tag_unhandled_key_event_manager 0x0 +int id tag_unhandled_key_listeners 0x0 +int id text 0x0 +int id text2 0x0 +int id textSpacerNoButtons 0x0 +int id textSpacerNoTitle 0x0 +int id textView_gif 0x0 +int id textView_size 0x0 +int id text_bar 0x0 +int id textview_1 0x0 +int id time 0x0 +int id title 0x0 +int id titleDividerNoCustom 0x0 +int id title_template 0x0 +int id top 0x0 +int id topPanel 0x0 +int id tv_album_folder 0x0 +int id tv_cancel 0x0 +int id tv_clip_reset 0x0 +int id tv_custom_privacy_title 0x0 +int id tv_done 0x0 +int id tv_name 0x0 +int id tv_preview 0x0 +int id tv_privacy_content 0x0 +int id uniform 0x0 +int id up 0x0 +int id video_info 0x0 +int id viewpager 0x0 +int id vs_op 0x0 +int id vs_op_sub 0x0 +int id vs_tips_stub 0x0 +int id webview 0x0 +int id wrap_content 0x0 +int integer abc_config_activityDefaultDur 0x0 +int integer abc_config_activityShortDur 0x0 +int integer cancel_button_image_alpha 0x0 +int integer config_tooltipAnimTime 0x0 +int integer status_bar_notification_info_maxnum 0x0 +int layout abc_action_bar_title_item 0x0 +int layout abc_action_bar_up_container 0x0 +int layout abc_action_menu_item_layout 0x0 +int layout abc_action_menu_layout 0x0 +int layout abc_action_mode_bar 0x0 +int layout abc_action_mode_close_item_material 0x0 +int layout abc_activity_chooser_view 0x0 +int layout abc_activity_chooser_view_list_item 0x0 +int layout abc_alert_dialog_button_bar_material 0x0 +int layout abc_alert_dialog_material 0x0 +int layout abc_alert_dialog_title_material 0x0 +int layout abc_cascading_menu_item_layout 0x0 +int layout abc_dialog_title_material 0x0 +int layout abc_expanded_menu_layout 0x0 +int layout abc_list_menu_item_checkbox 0x0 +int layout abc_list_menu_item_icon 0x0 +int layout abc_list_menu_item_layout 0x0 +int layout abc_list_menu_item_radio 0x0 +int layout abc_popup_menu_header_item_layout 0x0 +int layout abc_popup_menu_item_layout 0x0 +int layout abc_screen_content_include 0x0 +int layout abc_screen_simple 0x0 +int layout abc_screen_simple_overlay_action_mode 0x0 +int layout abc_screen_toolbar 0x0 +int layout abc_search_dropdown_item_icons_2line 0x0 +int layout abc_search_view 0x0 +int layout abc_select_dialog_material 0x0 +int layout abc_tooltip 0x0 +int layout ad_dcloud_main 0x0 +int layout ad_dcloud_splash 0x0 +int layout dcloud_activity_main_market 0x0 +int layout dcloud_ad_activity_webview 0x0 +int layout dcloud_ad_splash_container 0x0 +int layout dcloud_custom_alert_dialog_layout 0x0 +int layout dcloud_custom_notification 0x0 +int layout dcloud_custom_notification_dark 0x0 +int layout dcloud_custom_notification_mi 0x0 +int layout dcloud_custom_notification_transparent 0x0 +int layout dcloud_custom_notification_white 0x0 +int layout dcloud_custom_privacy_dialog_layout 0x0 +int layout dcloud_custom_privacy_second_dialog_layout 0x0 +int layout dcloud_dialog 0x0 +int layout dcloud_dialog_loading 0x0 +int layout dcloud_gallery_folders_view_item 0x0 +int layout dcloud_gallery_media_view_item 0x0 +int layout dcloud_gallery_picker_actionbar 0x0 +int layout dcloud_gallery_picker_main 0x0 +int layout dcloud_gallery_preview_actionbar 0x0 +int layout dcloud_gallery_preview_bottombar 0x0 +int layout dcloud_gallery_preview_fragment_item 0x0 +int layout dcloud_gallery_preview_main 0x0 +int layout dcloud_loadingview 0x0 +int layout dcloud_main_test_activity 0x0 +int layout dcloud_market_fragment_base 0x0 +int layout dcloud_record_address 0x0 +int layout dcloud_record_default 0x0 +int layout dcloud_shortcut_permission_guide_layout 0x0 +int layout dcloud_snow_black_progress 0x0 +int layout dcloud_snow_white_progress 0x0 +int layout dcloud_streamapp_custom_dialog_layout 0x0 +int layout dcloud_tabbar_item 0x0 +int layout dcloud_tabbar_mid 0x0 +int layout dcloud_weex_debug_progress 0x0 +int layout image_color_layout 0x0 +int layout image_edit_activity 0x0 +int layout image_edit_clip_layout 0x0 +int layout image_edit_opt_layout 0x0 +int layout image_gallery_activity 0x0 +int layout image_inc_gallery_request_permission 0x0 +int layout image_layout_gallery_menu_item 0x0 +int layout image_layout_gallery_pop 0x0 +int layout image_layout_image 0x0 +int layout image_text_dialog 0x0 +int layout notification_action 0x0 +int layout notification_action_tombstone 0x0 +int layout notification_media_action 0x0 +int layout notification_media_cancel_action 0x0 +int layout notification_template_big_media 0x0 +int layout notification_template_big_media_custom 0x0 +int layout notification_template_big_media_narrow 0x0 +int layout notification_template_big_media_narrow_custom 0x0 +int layout notification_template_custom_big 0x0 +int layout notification_template_icon_group 0x0 +int layout notification_template_lines_media 0x0 +int layout notification_template_media 0x0 +int layout notification_template_media_custom 0x0 +int layout notification_template_part_chronometer 0x0 +int layout notification_template_part_time 0x0 +int layout select_dialog_item_material 0x0 +int layout select_dialog_multichoice_material 0x0 +int layout select_dialog_singlechoice_material 0x0 +int layout side_bar_layout 0x0 +int layout support_simple_spinner_dropdown_item 0x0 +int layout webview_layout 0x0 +int layout weex_recycler_layout 0x0 +int menu image_menu_gallery 0x0 +int mipmap dcloud_gallery_edit_back 0x0 +int mipmap dcloud_gallery_edit_cancel 0x0 +int mipmap dcloud_gallery_edit_clip 0x0 +int mipmap dcloud_gallery_edit_doodle 0x0 +int mipmap dcloud_gallery_edit_mosaic 0x0 +int mipmap dcloud_gallery_edit_ok 0x0 +int mipmap dcloud_gallery_edit_revert 0x0 +int mipmap dcloud_gallery_edit_rotate 0x0 +int mipmap dcloud_gallery_edit_text 0x0 +int mipmap image_ic_adjust 0x0 +int mipmap image_ic_delete 0x0 +int mipmap image_ic_undo 0x0 +int mipmap image_ic_undo_disable 0x0 +int string abc_action_bar_home_description 0x0 +int string abc_action_bar_up_description 0x0 +int string abc_action_menu_overflow_description 0x0 +int string abc_action_mode_done 0x0 +int string abc_activity_chooser_view_see_all 0x0 +int string abc_activitychooserview_choose_application 0x0 +int string abc_capital_off 0x0 +int string abc_capital_on 0x0 +int string abc_font_family_body_1_material 0x0 +int string abc_font_family_body_2_material 0x0 +int string abc_font_family_button_material 0x0 +int string abc_font_family_caption_material 0x0 +int string abc_font_family_display_1_material 0x0 +int string abc_font_family_display_2_material 0x0 +int string abc_font_family_display_3_material 0x0 +int string abc_font_family_display_4_material 0x0 +int string abc_font_family_headline_material 0x0 +int string abc_font_family_menu_material 0x0 +int string abc_font_family_subhead_material 0x0 +int string abc_font_family_title_material 0x0 +int string abc_menu_alt_shortcut_label 0x0 +int string abc_menu_ctrl_shortcut_label 0x0 +int string abc_menu_delete_shortcut_label 0x0 +int string abc_menu_enter_shortcut_label 0x0 +int string abc_menu_function_shortcut_label 0x0 +int string abc_menu_meta_shortcut_label 0x0 +int string abc_menu_shift_shortcut_label 0x0 +int string abc_menu_space_shortcut_label 0x0 +int string abc_menu_sym_shortcut_label 0x0 +int string abc_prepend_shortcut_label 0x0 +int string abc_search_hint 0x0 +int string abc_searchview_description_clear 0x0 +int string abc_searchview_description_query 0x0 +int string abc_searchview_description_search 0x0 +int string abc_searchview_description_submit 0x0 +int string abc_searchview_description_voice 0x0 +int string abc_shareactionprovider_share_with 0x0 +int string abc_shareactionprovider_share_with_application 0x0 +int string abc_toolbar_collapse_description 0x0 +int string app_name 0x0 +int string dcloud_Init_fail_tips 0x0 +int string dcloud_audio_abnormal_rebuild 0x0 +int string dcloud_audio_no_mp3_module_added 0x0 +int string dcloud_audio_not_aac_recording 0x0 +int string dcloud_audio_not_mp3_recording 0x0 +int string dcloud_audio_play_error 0x0 +int string dcloud_audio_timeout 0x0 +int string dcloud_choose_an_action 0x0 +int string dcloud_common_allow 0x0 +int string dcloud_common_app_check_failed 0x0 +int string dcloud_common_app_not_installed 0x0 +int string dcloud_common_app_not_oaid 0x0 +int string dcloud_common_app_open_now 0x0 +int string dcloud_common_app_res_download_failed 0x0 +int string dcloud_common_app_target_tips 0x0 +int string dcloud_common_app_test_tips 0x0 +int string dcloud_common_app_tips1 0x0 +int string dcloud_common_app_tips2 0x0 +int string dcloud_common_app_trust_tips 0x0 +int string dcloud_common_cancel 0x0 +int string dcloud_common_certificate_continue 0x0 +int string dcloud_common_close 0x0 +int string dcloud_common_copy_clipboard 0x0 +int string dcloud_common_copy_link 0x0 +int string dcloud_common_download 0x0 +int string dcloud_common_download_complete 0x0 +int string dcloud_common_download_do_file 0x0 +int string dcloud_common_download_failed 0x0 +int string dcloud_common_download_tips1 0x0 +int string dcloud_common_download_tips2 0x0 +int string dcloud_common_download_tips3 0x0 +int string dcloud_common_exit 0x0 +int string dcloud_common_fail 0x0 +int string dcloud_common_file_not_exist 0x0 +int string dcloud_common_ignore 0x0 +int string dcloud_common_in_the_buffer 0x0 +int string dcloud_common_inside_error 0x0 +int string dcloud_common_into 0x0 +int string dcloud_common_missing_parameter 0x0 +int string dcloud_common_msg_unread_prompt 0x0 +int string dcloud_common_no_allow 0x0 +int string dcloud_common_no_network_tips 0x0 +int string dcloud_common_not_sd_card 0x0 +int string dcloud_common_not_supported 0x0 +int string dcloud_common_ok 0x0 +int string dcloud_common_open 0x0 +int string dcloud_common_open_browser 0x0 +int string dcloud_common_open_web 0x0 +int string dcloud_common_parameter_error 0x0 +int string dcloud_common_press_again_tips1 0x0 +int string dcloud_common_press_again_tips2 0x0 +int string dcloud_common_refresh 0x0 +int string dcloud_common_retry 0x0 +int string dcloud_common_run_app_failed 0x0 +int string dcloud_common_safety_warning 0x0 +int string dcloud_common_screenshot_blank 0x0 +int string dcloud_common_screenshot_fail 0x0 +int string dcloud_common_sd_not_space 0x0 +int string dcloud_common_search 0x0 +int string dcloud_common_set_network 0x0 +int string dcloud_common_set_up 0x0 +int string dcloud_common_setting_download_failed 0x0 +int string dcloud_common_share 0x0 +int string dcloud_common_share_page 0x0 +int string dcloud_common_soon_open 0x0 +int string dcloud_common_tips 0x0 +int string dcloud_common_unknown_error 0x0 +int string dcloud_common_user_cancel 0x0 +int string dcloud_common_user_refuse_api 0x0 +int string dcloud_common_view_details 0x0 +int string dcloud_common_zip_image_output_failed 0x0 +int string dcloud_current_address 0x0 +int string dcloud_debug_break_off_reason 0x0 +int string dcloud_debug_cannot_connect 0x0 +int string dcloud_debug_connecting 0x0 +int string dcloud_debug_possible_causes 0x0 +int string dcloud_debug_reconnection_service 0x0 +int string dcloud_dialog_loading 0x0 +int string dcloud_drop_down_refresh1 0x0 +int string dcloud_drop_down_refresh2 0x0 +int string dcloud_drop_down_refresh3 0x0 +int string dcloud_feature_barcode2_no_camera_permission 0x0 +int string dcloud_feature_error_tips 0x0 +int string dcloud_feature_error_tips2 0x0 +int string dcloud_feature_weex_jsfk_not_found_tips 0x0 +int string dcloud_feature_weex_msg_cannot_find_file_by_path 0x0 +int string dcloud_feature_weex_msg_page_destroyed 0x0 +int string dcloud_feature_weex_msg_param_empty 0x0 +int string dcloud_feature_weex_msg_param_invalid 0x0 +int string dcloud_gallery_Next 0x0 +int string dcloud_gallery_all_dir_name 0x0 +int string dcloud_gallery_all_image 0x0 +int string dcloud_gallery_all_video 0x0 +int string dcloud_gallery_cant_play_video 0x0 +int string dcloud_gallery_count_string 0x0 +int string dcloud_gallery_done 0x0 +int string dcloud_gallery_edit 0x0 +int string dcloud_gallery_edit_image_all_photo 0x0 +int string dcloud_gallery_edit_image_cancel 0x0 +int string dcloud_gallery_edit_image_clip 0x0 +int string dcloud_gallery_edit_image_done 0x0 +int string dcloud_gallery_edit_image_doodle 0x0 +int string dcloud_gallery_edit_image_enable_storage_permission 0x0 +int string dcloud_gallery_edit_image_enable_storage_tips 0x0 +int string dcloud_gallery_edit_image_mosaic 0x0 +int string dcloud_gallery_edit_image_mosaic_tip 0x0 +int string dcloud_gallery_edit_image_original 0x0 +int string dcloud_gallery_edit_image_preview 0x0 +int string dcloud_gallery_edit_image_reset 0x0 +int string dcloud_gallery_edit_image_rotate 0x0 +int string dcloud_gallery_edit_image_text 0x0 +int string dcloud_gallery_edit_image_undo 0x0 +int string dcloud_gallery_library_name 0x0 +int string dcloud_gallery_msg_amount_limit 0x0 +int string dcloud_gallery_msg_size_limit 0x0 +int string dcloud_gallery_preview 0x0 +int string dcloud_gallery_read_external_storage 0x0 +int string dcloud_gallery_select 0x0 +int string dcloud_gallery_select_image_title 0x0 +int string dcloud_gallery_select_null 0x0 +int string dcloud_gallery_select_title 0x0 +int string dcloud_gallery_select_video_title 0x0 +int string dcloud_gallery_video 0x0 +int string dcloud_gallery_video_dir_name 0x0 +int string dcloud_geo_current_address 0x0 +int string dcloud_geo_fail 0x0 +int string dcloud_geo_loading 0x0 +int string dcloud_geo_open_permissions 0x0 +int string dcloud_geo_open_service 0x0 +int string dcloud_geo_permission_failed 0x0 +int string dcloud_geo_provider_invalid 0x0 +int string dcloud_io_coding_error 0x0 +int string dcloud_io_file_not_found 0x0 +int string dcloud_io_file_not_read 0x0 +int string dcloud_io_grammar_mistakes 0x0 +int string dcloud_io_invalid_modification 0x0 +int string dcloud_io_invalid_state 0x0 +int string dcloud_io_no_modification_allowed 0x0 +int string dcloud_io_path_exists 0x0 +int string dcloud_io_path_not_exist 0x0 +int string dcloud_io_perform_error 0x0 +int string dcloud_io_type_mismatch 0x0 +int string dcloud_io_unknown_error 0x0 +int string dcloud_io_without_authorization 0x0 +int string dcloud_io_write_non_base64 0x0 +int string dcloud_native_obj_load_failed 0x0 +int string dcloud_native_obj_path_cannot_empty 0x0 +int string dcloud_native_obj_path_not_network 0x0 +int string dcloud_nf_afternoon 0x0 +int string dcloud_nf_desktop_icon_corner 0x0 +int string dcloud_nf_evening 0x0 +int string dcloud_nf_forenoon 0x0 +int string dcloud_nf_midnight 0x0 +int string dcloud_nf_morning 0x0 +int string dcloud_nf_night 0x0 +int string dcloud_nf_noon 0x0 +int string dcloud_oauth_authentication_failed 0x0 +int string dcloud_oauth_empower_failed 0x0 +int string dcloud_oauth_logout_tips 0x0 +int string dcloud_oauth_oauth_not_empower 0x0 +int string dcloud_oauth_token_failed 0x0 +int string dcloud_offline_fail_tips 0x0 +int string dcloud_package_name_base_application 0x0 +int string dcloud_permission_read_phone_state_message 0x0 +int string dcloud_permission_write_external_storage_message 0x0 +int string dcloud_permissions_album_whether_allow 0x0 +int string dcloud_permissions_camera_whether_allow 0x0 +int string dcloud_permissions_checkbox_close_tips 0x0 +int string dcloud_permissions_geo_retry_tips 0x0 +int string dcloud_permissions_informs_whether_allow 0x0 +int string dcloud_permissions_njs_tips1 0x0 +int string dcloud_permissions_njs_whether_allow 0x0 +int string dcloud_permissions_phone_call_whether_allow 0x0 +int string dcloud_permissions_reauthorization 0x0 +int string dcloud_permissions_record_whether_allow 0x0 +int string dcloud_permissions_reopened 0x0 +int string dcloud_permissions_retry_tips 0x0 +int string dcloud_permissions_short_cut_close_tips 0x0 +int string dcloud_permissions_short_cut_tips 0x0 +int string dcloud_permissions_short_cut_tips2 0x0 +int string dcloud_permissions_sms_whether_allow 0x0 +int string dcloud_permissions_whether_allow 0x0 +int string dcloud_privacy_prompt_accept_button_text 0x0 +int string dcloud_privacy_prompt_message 0x0 +int string dcloud_privacy_prompt_title 0x0 +int string dcloud_record_address_current 0x0 +int string dcloud_record_address_home 0x0 +int string dcloud_record_address_unit 0x0 +int string dcloud_runtime_not_manifest 0x0 +int string dcloud_runtime_not_update_tips 0x0 +int string dcloud_share_content_not_empty 0x0 +int string dcloud_share_local_path 0x0 +int string dcloud_short_cut_abandon_install 0x0 +int string dcloud_short_cut_chuizi1 0x0 +int string dcloud_short_cut_create_desktop_icon 0x0 +int string dcloud_short_cut_create_error 0x0 +int string dcloud_short_cut_create_error_tips 0x0 +int string dcloud_short_cut_create_error_tips2 0x0 +int string dcloud_short_cut_create_error_tips3 0x0 +int string dcloud_short_cut_create_error_tips4 0x0 +int string dcloud_short_cut_created 0x0 +int string dcloud_short_cut_created_removed_manually 0x0 +int string dcloud_short_cut_created_tip 0x0 +int string dcloud_short_cut_err1 0x0 +int string dcloud_short_cut_exists 0x0 +int string dcloud_short_cut_goto_pms 0x0 +int string dcloud_short_cut_goto_run 0x0 +int string dcloud_short_cut_if_create_tips 0x0 +int string dcloud_short_cut_it_set 0x0 +int string dcloud_short_cut_not_install 0x0 +int string dcloud_short_cut_open_pms_tips 0x0 +int string dcloud_short_cut_open_pms_title 0x0 +int string dcloud_short_cut_open_set_pms 0x0 +int string dcloud_short_cut_pms_unauthorized_tips1 0x0 +int string dcloud_short_cut_pms_unauthorized_tips2 0x0 +int string dcloud_short_cut_pms_unauthorized_tips3 0x0 +int string dcloud_short_cut_pms_unauthorized_tips4 0x0 +int string dcloud_short_cut_qiku1 0x0 +int string dcloud_short_cut_set_pms 0x0 +int string dcloud_short_cut_set_up 0x0 +int string dcloud_short_cut_tips 0x0 +int string dcloud_short_cut_vivo1 0x0 +int string dcloud_short_cut_vivo2 0x0 +int string dcloud_storage_ceiling_error 0x0 +int string dcloud_storage_key_error 0x0 +int string dcloud_storage_native_error 0x0 +int string dcloud_storage_no_db_error 0x0 +int string dcloud_storage_not_find_error 0x0 +int string dcloud_storage_success 0x0 +int string dcloud_storage_write_big_error 0x0 +int string dcloud_sync_debug_message 0x0 +int string dcloud_titlenview_back_button_description 0x0 +int string dcloud_ui_webview_not_finished 0x0 +int string dcloud_wgt_appid_legal 0x0 +int string dcloud_wgt_format_error 0x0 +int string dcloud_wgt_manifest_format_error 0x0 +int string dcloud_wgt_not_manifest 0x0 +int string dcloud_wgt_not_update_file 0x0 +int string dcloud_wgt_update_appid_error 0x0 +int string dcloud_wgt_update_format_error 0x0 +int string dcloud_wgt_update_version_error 0x0 +int string dcloud_wgt_version_error 0x0 +int string dcloud_wgtu_appid_legal 0x0 +int string dcloud_wgtu_manifest_format_error 0x0 +int string dcloud_wgtu_not_manifest 0x0 +int string dcloud_wgtu_version_error 0x0 +int string in_package 0x0 +int string oaid_not_support 0x0 +int string search_menu_title 0x0 +int string status_bar_notification_info_overflow 0x0 +int string stream_my 0x0 +int style ActionSheetStyleIOS6 0x0 +int style ActionSheetStyleIOS7 0x0 +int style AlertDialog_AppCompat 0x0 +int style AlertDialog_AppCompat_Light 0x0 +int style Animation_AppCompat_Dialog 0x0 +int style Animation_AppCompat_DropDownUp 0x0 +int style Animation_AppCompat_Tooltip 0x0 +int style Base_AlertDialog_AppCompat 0x0 +int style Base_AlertDialog_AppCompat_Light 0x0 +int style Base_Animation_AppCompat_Dialog 0x0 +int style Base_Animation_AppCompat_DropDownUp 0x0 +int style Base_Animation_AppCompat_Tooltip 0x0 +int style Base_DialogWindowTitleBackground_AppCompat 0x0 +int style Base_DialogWindowTitle_AppCompat 0x0 +int style Base_TextAppearance_AppCompat 0x0 +int style Base_TextAppearance_AppCompat_Body1 0x0 +int style Base_TextAppearance_AppCompat_Body2 0x0 +int style Base_TextAppearance_AppCompat_Button 0x0 +int style Base_TextAppearance_AppCompat_Caption 0x0 +int style Base_TextAppearance_AppCompat_Display1 0x0 +int style Base_TextAppearance_AppCompat_Display2 0x0 +int style Base_TextAppearance_AppCompat_Display3 0x0 +int style Base_TextAppearance_AppCompat_Display4 0x0 +int style Base_TextAppearance_AppCompat_Headline 0x0 +int style Base_TextAppearance_AppCompat_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Large 0x0 +int style Base_TextAppearance_AppCompat_Large_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0 +int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0 +int style Base_TextAppearance_AppCompat_Medium 0x0 +int style Base_TextAppearance_AppCompat_Medium_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Menu 0x0 +int style Base_TextAppearance_AppCompat_SearchResult 0x0 +int style Base_TextAppearance_AppCompat_SearchResult_Subtitle 0x0 +int style Base_TextAppearance_AppCompat_SearchResult_Title 0x0 +int style Base_TextAppearance_AppCompat_Small 0x0 +int style Base_TextAppearance_AppCompat_Small_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Subhead 0x0 +int style Base_TextAppearance_AppCompat_Subhead_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Title 0x0 +int style Base_TextAppearance_AppCompat_Title_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Tooltip 0x0 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title 0x0 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0 +int style Base_TextAppearance_AppCompat_Widget_ActionMode_Title 0x0 +int style Base_TextAppearance_AppCompat_Widget_Button 0x0 +int style Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0 +int style Base_TextAppearance_AppCompat_Widget_Button_Colored 0x0 +int style Base_TextAppearance_AppCompat_Widget_Button_Inverse 0x0 +int style Base_TextAppearance_AppCompat_Widget_DropDownItem 0x0 +int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0 +int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0 +int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0 +int style Base_TextAppearance_AppCompat_Widget_Switch 0x0 +int style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0 +int style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0 +int style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0 +int style Base_TextAppearance_Widget_AppCompat_Toolbar_Title 0x0 +int style Base_ThemeOverlay_AppCompat 0x0 +int style Base_ThemeOverlay_AppCompat_ActionBar 0x0 +int style Base_ThemeOverlay_AppCompat_Dark 0x0 +int style Base_ThemeOverlay_AppCompat_Dark_ActionBar 0x0 +int style Base_ThemeOverlay_AppCompat_Dialog 0x0 +int style Base_ThemeOverlay_AppCompat_Dialog_Alert 0x0 +int style Base_ThemeOverlay_AppCompat_Light 0x0 +int style Base_Theme_AppCompat 0x0 +int style Base_Theme_AppCompat_CompactMenu 0x0 +int style Base_Theme_AppCompat_Dialog 0x0 +int style Base_Theme_AppCompat_DialogWhenLarge 0x0 +int style Base_Theme_AppCompat_Dialog_Alert 0x0 +int style Base_Theme_AppCompat_Dialog_FixedSize 0x0 +int style Base_Theme_AppCompat_Dialog_MinWidth 0x0 +int style Base_Theme_AppCompat_Light 0x0 +int style Base_Theme_AppCompat_Light_DarkActionBar 0x0 +int style Base_Theme_AppCompat_Light_Dialog 0x0 +int style Base_Theme_AppCompat_Light_DialogWhenLarge 0x0 +int style Base_Theme_AppCompat_Light_Dialog_Alert 0x0 +int style Base_Theme_AppCompat_Light_Dialog_FixedSize 0x0 +int style Base_Theme_AppCompat_Light_Dialog_MinWidth 0x0 +int style Base_V21_ThemeOverlay_AppCompat_Dialog 0x0 +int style Base_V21_Theme_AppCompat 0x0 +int style Base_V21_Theme_AppCompat_Dialog 0x0 +int style Base_V21_Theme_AppCompat_Light 0x0 +int style Base_V21_Theme_AppCompat_Light_Dialog 0x0 +int style Base_V22_Theme_AppCompat 0x0 +int style Base_V22_Theme_AppCompat_Light 0x0 +int style Base_V23_Theme_AppCompat 0x0 +int style Base_V23_Theme_AppCompat_Light 0x0 +int style Base_V26_Theme_AppCompat 0x0 +int style Base_V26_Theme_AppCompat_Light 0x0 +int style Base_V26_Widget_AppCompat_Toolbar 0x0 +int style Base_V28_Theme_AppCompat 0x0 +int style Base_V28_Theme_AppCompat_Light 0x0 +int style Base_V7_ThemeOverlay_AppCompat_Dialog 0x0 +int style Base_V7_Theme_AppCompat 0x0 +int style Base_V7_Theme_AppCompat_Dialog 0x0 +int style Base_V7_Theme_AppCompat_Light 0x0 +int style Base_V7_Theme_AppCompat_Light_Dialog 0x0 +int style Base_V7_Widget_AppCompat_AutoCompleteTextView 0x0 +int style Base_V7_Widget_AppCompat_EditText 0x0 +int style Base_V7_Widget_AppCompat_Toolbar 0x0 +int style Base_Widget_AppCompat_ActionBar 0x0 +int style Base_Widget_AppCompat_ActionBar_Solid 0x0 +int style Base_Widget_AppCompat_ActionBar_TabBar 0x0 +int style Base_Widget_AppCompat_ActionBar_TabText 0x0 +int style Base_Widget_AppCompat_ActionBar_TabView 0x0 +int style Base_Widget_AppCompat_ActionButton 0x0 +int style Base_Widget_AppCompat_ActionButton_CloseMode 0x0 +int style Base_Widget_AppCompat_ActionButton_Overflow 0x0 +int style Base_Widget_AppCompat_ActionMode 0x0 +int style Base_Widget_AppCompat_ActivityChooserView 0x0 +int style Base_Widget_AppCompat_AutoCompleteTextView 0x0 +int style Base_Widget_AppCompat_Button 0x0 +int style Base_Widget_AppCompat_ButtonBar 0x0 +int style Base_Widget_AppCompat_ButtonBar_AlertDialog 0x0 +int style Base_Widget_AppCompat_Button_Borderless 0x0 +int style Base_Widget_AppCompat_Button_Borderless_Colored 0x0 +int style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0 +int style Base_Widget_AppCompat_Button_Colored 0x0 +int style Base_Widget_AppCompat_Button_Small 0x0 +int style Base_Widget_AppCompat_CompoundButton_CheckBox 0x0 +int style Base_Widget_AppCompat_CompoundButton_RadioButton 0x0 +int style Base_Widget_AppCompat_CompoundButton_Switch 0x0 +int style Base_Widget_AppCompat_DrawerArrowToggle 0x0 +int style Base_Widget_AppCompat_DrawerArrowToggle_Common 0x0 +int style Base_Widget_AppCompat_DropDownItem_Spinner 0x0 +int style Base_Widget_AppCompat_EditText 0x0 +int style Base_Widget_AppCompat_ImageButton 0x0 +int style Base_Widget_AppCompat_Light_ActionBar 0x0 +int style Base_Widget_AppCompat_Light_ActionBar_Solid 0x0 +int style Base_Widget_AppCompat_Light_ActionBar_TabBar 0x0 +int style Base_Widget_AppCompat_Light_ActionBar_TabText 0x0 +int style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0 +int style Base_Widget_AppCompat_Light_ActionBar_TabView 0x0 +int style Base_Widget_AppCompat_Light_PopupMenu 0x0 +int style Base_Widget_AppCompat_Light_PopupMenu_Overflow 0x0 +int style Base_Widget_AppCompat_ListMenuView 0x0 +int style Base_Widget_AppCompat_ListPopupWindow 0x0 +int style Base_Widget_AppCompat_ListView 0x0 +int style Base_Widget_AppCompat_ListView_DropDown 0x0 +int style Base_Widget_AppCompat_ListView_Menu 0x0 +int style Base_Widget_AppCompat_PopupMenu 0x0 +int style Base_Widget_AppCompat_PopupMenu_Overflow 0x0 +int style Base_Widget_AppCompat_PopupWindow 0x0 +int style Base_Widget_AppCompat_ProgressBar 0x0 +int style Base_Widget_AppCompat_ProgressBar_Horizontal 0x0 +int style Base_Widget_AppCompat_RatingBar 0x0 +int style Base_Widget_AppCompat_RatingBar_Indicator 0x0 +int style Base_Widget_AppCompat_RatingBar_Small 0x0 +int style Base_Widget_AppCompat_SearchView 0x0 +int style Base_Widget_AppCompat_SearchView_ActionBar 0x0 +int style Base_Widget_AppCompat_SeekBar 0x0 +int style Base_Widget_AppCompat_SeekBar_Discrete 0x0 +int style Base_Widget_AppCompat_Spinner 0x0 +int style Base_Widget_AppCompat_Spinner_Underlined 0x0 +int style Base_Widget_AppCompat_TextView_SpinnerItem 0x0 +int style Base_Widget_AppCompat_Toolbar 0x0 +int style Base_Widget_AppCompat_Toolbar_Button_Navigation 0x0 +int style DCloudTheme 0x0 +int style DeviceDefault 0x0 +int style DeviceDefault_Light 0x0 +int style ImageDialogAnimation 0x0 +int style ImageEditTheme 0x0 +int style ImageGalleryTheme 0x0 +int style ImageTextDialog 0x0 +int style NotificationText 0x0 +int style NotificationText_Dark 0x0 +int style NotificationTitle 0x0 +int style NotificationTitle_Dark 0x0 +int style OpenStreamAppTransferActivityTheme 0x0 +int style Platform_AppCompat 0x0 +int style Platform_AppCompat_Light 0x0 +int style Platform_ThemeOverlay_AppCompat 0x0 +int style Platform_ThemeOverlay_AppCompat_Dark 0x0 +int style Platform_ThemeOverlay_AppCompat_Light 0x0 +int style Platform_V21_AppCompat 0x0 +int style Platform_V21_AppCompat_Light 0x0 +int style Platform_V25_AppCompat 0x0 +int style Platform_V25_AppCompat_Light 0x0 +int style Platform_Widget_AppCompat_Spinner 0x0 +int style RtlOverlay_DialogWindowTitle_AppCompat 0x0 +int style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem 0x0 +int style RtlOverlay_Widget_AppCompat_DialogTitle_Icon 0x0 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem 0x0 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup 0x0 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut 0x0 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow 0x0 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text 0x0 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Title 0x0 +int style RtlOverlay_Widget_AppCompat_SearchView_MagIcon 0x0 +int style RtlOverlay_Widget_AppCompat_Search_DropDown 0x0 +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 0x0 +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 0x0 +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Query 0x0 +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Text 0x0 +int style RtlUnderlay_Widget_AppCompat_ActionButton 0x0 +int style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow 0x0 +int style TextAppearance_AppCompat 0x0 +int style TextAppearance_AppCompat_Body1 0x0 +int style TextAppearance_AppCompat_Body2 0x0 +int style TextAppearance_AppCompat_Button 0x0 +int style TextAppearance_AppCompat_Caption 0x0 +int style TextAppearance_AppCompat_Display1 0x0 +int style TextAppearance_AppCompat_Display2 0x0 +int style TextAppearance_AppCompat_Display3 0x0 +int style TextAppearance_AppCompat_Display4 0x0 +int style TextAppearance_AppCompat_Headline 0x0 +int style TextAppearance_AppCompat_Inverse 0x0 +int style TextAppearance_AppCompat_Large 0x0 +int style TextAppearance_AppCompat_Large_Inverse 0x0 +int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x0 +int style TextAppearance_AppCompat_Light_SearchResult_Title 0x0 +int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0 +int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0 +int style TextAppearance_AppCompat_Medium 0x0 +int style TextAppearance_AppCompat_Medium_Inverse 0x0 +int style TextAppearance_AppCompat_Menu 0x0 +int style TextAppearance_AppCompat_SearchResult_Subtitle 0x0 +int style TextAppearance_AppCompat_SearchResult_Title 0x0 +int style TextAppearance_AppCompat_Small 0x0 +int style TextAppearance_AppCompat_Small_Inverse 0x0 +int style TextAppearance_AppCompat_Subhead 0x0 +int style TextAppearance_AppCompat_Subhead_Inverse 0x0 +int style TextAppearance_AppCompat_Title 0x0 +int style TextAppearance_AppCompat_Title_Inverse 0x0 +int style TextAppearance_AppCompat_Tooltip 0x0 +int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0 +int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0 +int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0 +int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x0 +int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0 +int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0 +int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x0 +int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x0 +int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x0 +int style TextAppearance_AppCompat_Widget_Button 0x0 +int style TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0 +int style TextAppearance_AppCompat_Widget_Button_Colored 0x0 +int style TextAppearance_AppCompat_Widget_Button_Inverse 0x0 +int style TextAppearance_AppCompat_Widget_DropDownItem 0x0 +int style TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0 +int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0 +int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0 +int style TextAppearance_AppCompat_Widget_Switch 0x0 +int style TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0 +int style TextAppearance_Compat_Notification 0x0 +int style TextAppearance_Compat_Notification_Info 0x0 +int style TextAppearance_Compat_Notification_Info_Media 0x0 +int style TextAppearance_Compat_Notification_Line2 0x0 +int style TextAppearance_Compat_Notification_Line2_Media 0x0 +int style TextAppearance_Compat_Notification_Media 0x0 +int style TextAppearance_Compat_Notification_Time 0x0 +int style TextAppearance_Compat_Notification_Time_Media 0x0 +int style TextAppearance_Compat_Notification_Title 0x0 +int style TextAppearance_Compat_Notification_Title_Media 0x0 +int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0 +int style TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0 +int style TextAppearance_Widget_AppCompat_Toolbar_Title 0x0 +int style ThemeNoTitleBar 0x0 +int style ThemeOverlay_AppCompat 0x0 +int style ThemeOverlay_AppCompat_ActionBar 0x0 +int style ThemeOverlay_AppCompat_Dark 0x0 +int style ThemeOverlay_AppCompat_Dark_ActionBar 0x0 +int style ThemeOverlay_AppCompat_Dialog 0x0 +int style ThemeOverlay_AppCompat_Dialog_Alert 0x0 +int style ThemeOverlay_AppCompat_Light 0x0 +int style Theme_AppCompat 0x0 +int style Theme_AppCompat_CompactMenu 0x0 +int style Theme_AppCompat_DayNight 0x0 +int style Theme_AppCompat_DayNight_DarkActionBar 0x0 +int style Theme_AppCompat_DayNight_Dialog 0x0 +int style Theme_AppCompat_DayNight_DialogWhenLarge 0x0 +int style Theme_AppCompat_DayNight_Dialog_Alert 0x0 +int style Theme_AppCompat_DayNight_Dialog_MinWidth 0x0 +int style Theme_AppCompat_DayNight_NoActionBar 0x0 +int style Theme_AppCompat_Dialog 0x0 +int style Theme_AppCompat_DialogWhenLarge 0x0 +int style Theme_AppCompat_Dialog_Alert 0x0 +int style Theme_AppCompat_Dialog_MinWidth 0x0 +int style Theme_AppCompat_Light 0x0 +int style Theme_AppCompat_Light_DarkActionBar 0x0 +int style Theme_AppCompat_Light_Dialog 0x0 +int style Theme_AppCompat_Light_DialogWhenLarge 0x0 +int style Theme_AppCompat_Light_Dialog_Alert 0x0 +int style Theme_AppCompat_Light_Dialog_MinWidth 0x0 +int style Theme_AppCompat_Light_NoActionBar 0x0 +int style Theme_AppCompat_NoActionBar 0x0 +int style TranslucentTheme 0x0 +int style Widget_AppCompat_ActionBar 0x0 +int style Widget_AppCompat_ActionBar_Solid 0x0 +int style Widget_AppCompat_ActionBar_TabBar 0x0 +int style Widget_AppCompat_ActionBar_TabText 0x0 +int style Widget_AppCompat_ActionBar_TabView 0x0 +int style Widget_AppCompat_ActionButton 0x0 +int style Widget_AppCompat_ActionButton_CloseMode 0x0 +int style Widget_AppCompat_ActionButton_Overflow 0x0 +int style Widget_AppCompat_ActionMode 0x0 +int style Widget_AppCompat_ActivityChooserView 0x0 +int style Widget_AppCompat_AutoCompleteTextView 0x0 +int style Widget_AppCompat_Button 0x0 +int style Widget_AppCompat_ButtonBar 0x0 +int style Widget_AppCompat_ButtonBar_AlertDialog 0x0 +int style Widget_AppCompat_Button_Borderless 0x0 +int style Widget_AppCompat_Button_Borderless_Colored 0x0 +int style Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0 +int style Widget_AppCompat_Button_Colored 0x0 +int style Widget_AppCompat_Button_Small 0x0 +int style Widget_AppCompat_CompoundButton_CheckBox 0x0 +int style Widget_AppCompat_CompoundButton_RadioButton 0x0 +int style Widget_AppCompat_CompoundButton_Switch 0x0 +int style Widget_AppCompat_DrawerArrowToggle 0x0 +int style Widget_AppCompat_DropDownItem_Spinner 0x0 +int style Widget_AppCompat_EditText 0x0 +int style Widget_AppCompat_ImageButton 0x0 +int style Widget_AppCompat_Light_ActionBar 0x0 +int style Widget_AppCompat_Light_ActionBar_Solid 0x0 +int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x0 +int style Widget_AppCompat_Light_ActionBar_TabBar 0x0 +int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x0 +int style Widget_AppCompat_Light_ActionBar_TabText 0x0 +int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0 +int style Widget_AppCompat_Light_ActionBar_TabView 0x0 +int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x0 +int style Widget_AppCompat_Light_ActionButton 0x0 +int style Widget_AppCompat_Light_ActionButton_CloseMode 0x0 +int style Widget_AppCompat_Light_ActionButton_Overflow 0x0 +int style Widget_AppCompat_Light_ActionMode_Inverse 0x0 +int style Widget_AppCompat_Light_ActivityChooserView 0x0 +int style Widget_AppCompat_Light_AutoCompleteTextView 0x0 +int style Widget_AppCompat_Light_DropDownItem_Spinner 0x0 +int style Widget_AppCompat_Light_ListPopupWindow 0x0 +int style Widget_AppCompat_Light_ListView_DropDown 0x0 +int style Widget_AppCompat_Light_PopupMenu 0x0 +int style Widget_AppCompat_Light_PopupMenu_Overflow 0x0 +int style Widget_AppCompat_Light_SearchView 0x0 +int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x0 +int style Widget_AppCompat_ListMenuView 0x0 +int style Widget_AppCompat_ListPopupWindow 0x0 +int style Widget_AppCompat_ListView 0x0 +int style Widget_AppCompat_ListView_DropDown 0x0 +int style Widget_AppCompat_ListView_Menu 0x0 +int style Widget_AppCompat_PopupMenu 0x0 +int style Widget_AppCompat_PopupMenu_Overflow 0x0 +int style Widget_AppCompat_PopupWindow 0x0 +int style Widget_AppCompat_ProgressBar 0x0 +int style Widget_AppCompat_ProgressBar_Horizontal 0x0 +int style Widget_AppCompat_RatingBar 0x0 +int style Widget_AppCompat_RatingBar_Indicator 0x0 +int style Widget_AppCompat_RatingBar_Small 0x0 +int style Widget_AppCompat_SearchView 0x0 +int style Widget_AppCompat_SearchView_ActionBar 0x0 +int style Widget_AppCompat_SeekBar 0x0 +int style Widget_AppCompat_SeekBar_Discrete 0x0 +int style Widget_AppCompat_Spinner 0x0 +int style Widget_AppCompat_Spinner_DropDown 0x0 +int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x0 +int style Widget_AppCompat_Spinner_Underlined 0x0 +int style Widget_AppCompat_TextView_SpinnerItem 0x0 +int style Widget_AppCompat_Toolbar 0x0 +int style Widget_AppCompat_Toolbar_Button_Navigation 0x0 +int style Widget_Compat_NotificationActionContainer 0x0 +int style Widget_Compat_NotificationActionText 0x0 +int style Widget_Support_CoordinatorLayout 0x0 +int style dcloud_anim_dialog_window_in_out 0x0 +int style dcloud_defalut_dialog 0x0 +int style dialog_transparent 0x0 +int style featureLossDialog 0x0 +int style streamDelete19Dialog 0x0 +int style textAppearance 0x0 +int[] styleable ActionBar { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable ActionBar_background 0 +int styleable ActionBar_backgroundSplit 1 +int styleable ActionBar_backgroundStacked 2 +int styleable ActionBar_contentInsetEnd 3 +int styleable ActionBar_contentInsetEndWithActions 4 +int styleable ActionBar_contentInsetLeft 5 +int styleable ActionBar_contentInsetRight 6 +int styleable ActionBar_contentInsetStart 7 +int styleable ActionBar_contentInsetStartWithNavigation 8 +int styleable ActionBar_customNavigationLayout 9 +int styleable ActionBar_displayOptions 10 +int styleable ActionBar_divider 11 +int styleable ActionBar_elevation 12 +int styleable ActionBar_height 13 +int styleable ActionBar_hideOnContentScroll 14 +int styleable ActionBar_homeAsUpIndicator 15 +int styleable ActionBar_homeLayout 16 +int styleable ActionBar_icon 17 +int styleable ActionBar_indeterminateProgressStyle 18 +int styleable ActionBar_itemPadding 19 +int styleable ActionBar_logo 20 +int styleable ActionBar_navigationMode 21 +int styleable ActionBar_popupTheme 22 +int styleable ActionBar_progressBarPadding 23 +int styleable ActionBar_progressBarStyle 24 +int styleable ActionBar_subtitle 25 +int styleable ActionBar_subtitleTextStyle 26 +int styleable ActionBar_title 27 +int styleable ActionBar_titleTextStyle 28 +int[] styleable ActionBarLayout { 0x10100b3 } +int styleable ActionBarLayout_android_layout_gravity 0 +int[] styleable ActionMenuItemView { 0x101013f } +int styleable ActionMenuItemView_android_minWidth 0 +int[] styleable ActionMenuView { } +int[] styleable ActionMode { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable ActionMode_background 0 +int styleable ActionMode_backgroundSplit 1 +int styleable ActionMode_closeItemLayout 2 +int styleable ActionMode_height 3 +int styleable ActionMode_subtitleTextStyle 4 +int styleable ActionMode_titleTextStyle 5 +int[] styleable ActionSheet { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable ActionSheet_actionSheetBackground 0 +int styleable ActionSheet_actionSheetPadding 1 +int styleable ActionSheet_actionSheetTextSize 2 +int styleable ActionSheet_cancelButtonBackground 3 +int styleable ActionSheet_cancelButtonMarginTop 4 +int styleable ActionSheet_cancelButtonTextColor 5 +int styleable ActionSheet_destructiveButtonTextColor 6 +int styleable ActionSheet_otherButtonBottomBackground 7 +int styleable ActionSheet_otherButtonMiddleBackground 8 +int styleable ActionSheet_otherButtonSingleBackground 9 +int styleable ActionSheet_otherButtonSpacing 10 +int styleable ActionSheet_otherButtonTextColor 11 +int styleable ActionSheet_otherButtonTitleBackground 12 +int styleable ActionSheet_otherButtonTopBackground 13 +int styleable ActionSheet_titleButtonTextColor 14 +int[] styleable ActionSheets { 0x0 } +int styleable ActionSheets_actionSheetStyle 0 +int[] styleable ActivityChooserView { 0x0, 0x0 } +int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 0 +int styleable ActivityChooserView_initialActivityCount 1 +int[] styleable AlertDialog { 0x10100f2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable AlertDialog_android_layout 0 +int styleable AlertDialog_buttonIconDimen 1 +int styleable AlertDialog_buttonPanelSideLayout 2 +int styleable AlertDialog_listItemLayout 3 +int styleable AlertDialog_listLayout 4 +int styleable AlertDialog_multiChoiceItemLayout 5 +int styleable AlertDialog_showTitle 6 +int styleable AlertDialog_singleChoiceItemLayout 7 +int[] styleable AnimatedStateListDrawableCompat { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 } +int styleable AnimatedStateListDrawableCompat_android_constantSize 0 +int styleable AnimatedStateListDrawableCompat_android_dither 1 +int styleable AnimatedStateListDrawableCompat_android_enterFadeDuration 2 +int styleable AnimatedStateListDrawableCompat_android_exitFadeDuration 3 +int styleable AnimatedStateListDrawableCompat_android_variablePadding 4 +int styleable AnimatedStateListDrawableCompat_android_visible 5 +int[] styleable AnimatedStateListDrawableItem { 0x1010199, 0x10100d0 } +int styleable AnimatedStateListDrawableItem_android_drawable 0 +int styleable AnimatedStateListDrawableItem_android_id 1 +int[] styleable AnimatedStateListDrawableTransition { 0x1010199, 0x101044a, 0x101044b, 0x1010449 } +int styleable AnimatedStateListDrawableTransition_android_drawable 0 +int styleable AnimatedStateListDrawableTransition_android_fromId 1 +int styleable AnimatedStateListDrawableTransition_android_reversible 2 +int styleable AnimatedStateListDrawableTransition_android_toId 3 +int[] styleable AppCompatImageView { 0x1010119, 0x0, 0x0, 0x0 } +int styleable AppCompatImageView_android_src 0 +int styleable AppCompatImageView_srcCompat 1 +int styleable AppCompatImageView_tint 2 +int styleable AppCompatImageView_tintMode 3 +int[] styleable AppCompatSeekBar { 0x1010142, 0x0, 0x0, 0x0 } +int styleable AppCompatSeekBar_android_thumb 0 +int styleable AppCompatSeekBar_tickMark 1 +int styleable AppCompatSeekBar_tickMarkTint 2 +int styleable AppCompatSeekBar_tickMarkTintMode 3 +int[] styleable AppCompatTextHelper { 0x101016e, 0x1010393, 0x101016f, 0x1010170, 0x1010392, 0x101016d, 0x1010034 } +int styleable AppCompatTextHelper_android_drawableBottom 0 +int styleable AppCompatTextHelper_android_drawableEnd 1 +int styleable AppCompatTextHelper_android_drawableLeft 2 +int styleable AppCompatTextHelper_android_drawableRight 3 +int styleable AppCompatTextHelper_android_drawableStart 4 +int styleable AppCompatTextHelper_android_drawableTop 5 +int styleable AppCompatTextHelper_android_textAppearance 6 +int[] styleable AppCompatTextView { 0x1010034, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable AppCompatTextView_android_textAppearance 0 +int styleable AppCompatTextView_autoSizeMaxTextSize 1 +int styleable AppCompatTextView_autoSizeMinTextSize 2 +int styleable AppCompatTextView_autoSizePresetSizes 3 +int styleable AppCompatTextView_autoSizeStepGranularity 4 +int styleable AppCompatTextView_autoSizeTextType 5 +int styleable AppCompatTextView_firstBaselineToTopHeight 6 +int styleable AppCompatTextView_fontFamily 7 +int styleable AppCompatTextView_lastBaselineToBottomHeight 8 +int styleable AppCompatTextView_lineHeight 9 +int styleable AppCompatTextView_textAllCaps 10 +int[] styleable AppCompatTheme { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10100ae, 0x1010057, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable AppCompatTheme_actionBarDivider 0 +int styleable AppCompatTheme_actionBarItemBackground 1 +int styleable AppCompatTheme_actionBarPopupTheme 2 +int styleable AppCompatTheme_actionBarSize 3 +int styleable AppCompatTheme_actionBarSplitStyle 4 +int styleable AppCompatTheme_actionBarStyle 5 +int styleable AppCompatTheme_actionBarTabBarStyle 6 +int styleable AppCompatTheme_actionBarTabStyle 7 +int styleable AppCompatTheme_actionBarTabTextStyle 8 +int styleable AppCompatTheme_actionBarTheme 9 +int styleable AppCompatTheme_actionBarWidgetTheme 10 +int styleable AppCompatTheme_actionButtonStyle 11 +int styleable AppCompatTheme_actionDropDownStyle 12 +int styleable AppCompatTheme_actionMenuTextAppearance 13 +int styleable AppCompatTheme_actionMenuTextColor 14 +int styleable AppCompatTheme_actionModeBackground 15 +int styleable AppCompatTheme_actionModeCloseButtonStyle 16 +int styleable AppCompatTheme_actionModeCloseDrawable 17 +int styleable AppCompatTheme_actionModeCopyDrawable 18 +int styleable AppCompatTheme_actionModeCutDrawable 19 +int styleable AppCompatTheme_actionModeFindDrawable 20 +int styleable AppCompatTheme_actionModePasteDrawable 21 +int styleable AppCompatTheme_actionModePopupWindowStyle 22 +int styleable AppCompatTheme_actionModeSelectAllDrawable 23 +int styleable AppCompatTheme_actionModeShareDrawable 24 +int styleable AppCompatTheme_actionModeSplitBackground 25 +int styleable AppCompatTheme_actionModeStyle 26 +int styleable AppCompatTheme_actionModeWebSearchDrawable 27 +int styleable AppCompatTheme_actionOverflowButtonStyle 28 +int styleable AppCompatTheme_actionOverflowMenuStyle 29 +int styleable AppCompatTheme_activityChooserViewStyle 30 +int styleable AppCompatTheme_alertDialogButtonGroupStyle 31 +int styleable AppCompatTheme_alertDialogCenterButtons 32 +int styleable AppCompatTheme_alertDialogStyle 33 +int styleable AppCompatTheme_alertDialogTheme 34 +int styleable AppCompatTheme_android_windowAnimationStyle 35 +int styleable AppCompatTheme_android_windowIsFloating 36 +int styleable AppCompatTheme_autoCompleteTextViewStyle 37 +int styleable AppCompatTheme_borderlessButtonStyle 38 +int styleable AppCompatTheme_buttonBarButtonStyle 39 +int styleable AppCompatTheme_buttonBarNegativeButtonStyle 40 +int styleable AppCompatTheme_buttonBarNeutralButtonStyle 41 +int styleable AppCompatTheme_buttonBarPositiveButtonStyle 42 +int styleable AppCompatTheme_buttonBarStyle 43 +int styleable AppCompatTheme_buttonStyle 44 +int styleable AppCompatTheme_buttonStyleSmall 45 +int styleable AppCompatTheme_checkboxStyle 46 +int styleable AppCompatTheme_checkedTextViewStyle 47 +int styleable AppCompatTheme_colorAccent 48 +int styleable AppCompatTheme_colorBackgroundFloating 49 +int styleable AppCompatTheme_colorButtonNormal 50 +int styleable AppCompatTheme_colorControlActivated 51 +int styleable AppCompatTheme_colorControlHighlight 52 +int styleable AppCompatTheme_colorControlNormal 53 +int styleable AppCompatTheme_colorError 54 +int styleable AppCompatTheme_colorPrimary 55 +int styleable AppCompatTheme_colorPrimaryDark 56 +int styleable AppCompatTheme_colorSwitchThumbNormal 57 +int styleable AppCompatTheme_controlBackground 58 +int styleable AppCompatTheme_dialogCornerRadius 59 +int styleable AppCompatTheme_dialogPreferredPadding 60 +int styleable AppCompatTheme_dialogTheme 61 +int styleable AppCompatTheme_dividerHorizontal 62 +int styleable AppCompatTheme_dividerVertical 63 +int styleable AppCompatTheme_dropDownListViewStyle 64 +int styleable AppCompatTheme_dropdownListPreferredItemHeight 65 +int styleable AppCompatTheme_editTextBackground 66 +int styleable AppCompatTheme_editTextColor 67 +int styleable AppCompatTheme_editTextStyle 68 +int styleable AppCompatTheme_homeAsUpIndicator 69 +int styleable AppCompatTheme_imageButtonStyle 70 +int styleable AppCompatTheme_listChoiceBackgroundIndicator 71 +int styleable AppCompatTheme_listDividerAlertDialog 72 +int styleable AppCompatTheme_listMenuViewStyle 73 +int styleable AppCompatTheme_listPopupWindowStyle 74 +int styleable AppCompatTheme_listPreferredItemHeight 75 +int styleable AppCompatTheme_listPreferredItemHeightLarge 76 +int styleable AppCompatTheme_listPreferredItemHeightSmall 77 +int styleable AppCompatTheme_listPreferredItemPaddingLeft 78 +int styleable AppCompatTheme_listPreferredItemPaddingRight 79 +int styleable AppCompatTheme_panelBackground 80 +int styleable AppCompatTheme_panelMenuListTheme 81 +int styleable AppCompatTheme_panelMenuListWidth 82 +int styleable AppCompatTheme_popupMenuStyle 83 +int styleable AppCompatTheme_popupWindowStyle 84 +int styleable AppCompatTheme_radioButtonStyle 85 +int styleable AppCompatTheme_ratingBarStyle 86 +int styleable AppCompatTheme_ratingBarStyleIndicator 87 +int styleable AppCompatTheme_ratingBarStyleSmall 88 +int styleable AppCompatTheme_searchViewStyle 89 +int styleable AppCompatTheme_seekBarStyle 90 +int styleable AppCompatTheme_selectableItemBackground 91 +int styleable AppCompatTheme_selectableItemBackgroundBorderless 92 +int styleable AppCompatTheme_spinnerDropDownItemStyle 93 +int styleable AppCompatTheme_spinnerStyle 94 +int styleable AppCompatTheme_switchStyle 95 +int styleable AppCompatTheme_textAppearanceLargePopupMenu 96 +int styleable AppCompatTheme_textAppearanceListItem 97 +int styleable AppCompatTheme_textAppearanceListItemSecondary 98 +int styleable AppCompatTheme_textAppearanceListItemSmall 99 +int styleable AppCompatTheme_textAppearancePopupMenuHeader 100 +int styleable AppCompatTheme_textAppearanceSearchResultSubtitle 101 +int styleable AppCompatTheme_textAppearanceSearchResultTitle 102 +int styleable AppCompatTheme_textAppearanceSmallPopupMenu 103 +int styleable AppCompatTheme_textColorAlertDialogListItem 104 +int styleable AppCompatTheme_textColorSearchUrl 105 +int styleable AppCompatTheme_toolbarNavigationButtonStyle 106 +int styleable AppCompatTheme_toolbarStyle 107 +int styleable AppCompatTheme_tooltipForegroundColor 108 +int styleable AppCompatTheme_tooltipFrameBackground 109 +int styleable AppCompatTheme_viewInflaterClass 110 +int styleable AppCompatTheme_windowActionBar 111 +int styleable AppCompatTheme_windowActionBarOverlay 112 +int styleable AppCompatTheme_windowActionModeOverlay 113 +int styleable AppCompatTheme_windowFixedHeightMajor 114 +int styleable AppCompatTheme_windowFixedHeightMinor 115 +int styleable AppCompatTheme_windowFixedWidthMajor 116 +int styleable AppCompatTheme_windowFixedWidthMinor 117 +int styleable AppCompatTheme_windowMinWidthMajor 118 +int styleable AppCompatTheme_windowMinWidthMinor 119 +int styleable AppCompatTheme_windowNoTitle 120 +int[] styleable ButtonBarLayout { 0x0 } +int styleable ButtonBarLayout_allowStacking 0 +int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } +int styleable ColorStateListItem_alpha 0 +int styleable ColorStateListItem_android_alpha 1 +int styleable ColorStateListItem_android_color 2 +int[] styleable CompoundButton { 0x1010107, 0x0, 0x0 } +int styleable CompoundButton_android_button 0 +int styleable CompoundButton_buttonTint 1 +int styleable CompoundButton_buttonTintMode 2 +int[] styleable CoordinatorLayout { 0x0, 0x0 } +int styleable CoordinatorLayout_keylines 0 +int styleable CoordinatorLayout_statusBarBackground 1 +int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable CoordinatorLayout_Layout_android_layout_gravity 0 +int styleable CoordinatorLayout_Layout_layout_anchor 1 +int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 +int styleable CoordinatorLayout_Layout_layout_behavior 3 +int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 +int styleable CoordinatorLayout_Layout_layout_insetEdge 5 +int styleable CoordinatorLayout_Layout_layout_keyline 6 +int[] styleable DrawerArrowToggle { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable DrawerArrowToggle_arrowHeadLength 0 +int styleable DrawerArrowToggle_arrowShaftLength 1 +int styleable DrawerArrowToggle_barLength 2 +int styleable DrawerArrowToggle_color 3 +int styleable DrawerArrowToggle_drawableSize 4 +int styleable DrawerArrowToggle_gapBetweenBars 5 +int styleable DrawerArrowToggle_spinBars 6 +int styleable DrawerArrowToggle_thickness 7 +int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamily_fontProviderAuthority 0 +int styleable FontFamily_fontProviderCerts 1 +int styleable FontFamily_fontProviderFetchStrategy 2 +int styleable FontFamily_fontProviderFetchTimeout 3 +int styleable FontFamily_fontProviderPackage 4 +int styleable FontFamily_fontProviderQuery 5 +int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamilyFont_android_font 0 +int styleable FontFamilyFont_android_fontStyle 1 +int styleable FontFamilyFont_android_fontVariationSettings 2 +int styleable FontFamilyFont_android_fontWeight 3 +int styleable FontFamilyFont_android_ttcIndex 4 +int styleable FontFamilyFont_font 5 +int styleable FontFamilyFont_fontStyle 6 +int styleable FontFamilyFont_fontVariationSettings 7 +int styleable FontFamilyFont_fontWeight 8 +int styleable FontFamilyFont_ttcIndex 9 +int[] styleable GIFVIEW { 0x0, 0x0, 0x0 } +int styleable GIFVIEW_authPlay 0 +int styleable GIFVIEW_gifSrc 1 +int styleable GIFVIEW_playCount 2 +int[] styleable GenericDraweeHierarchy { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable GenericDraweeHierarchy_actualImageScaleType 0 +int styleable GenericDraweeHierarchy_backgroundImage 1 +int styleable GenericDraweeHierarchy_fadeDuration 2 +int styleable GenericDraweeHierarchy_failureImage 3 +int styleable GenericDraweeHierarchy_failureImageScaleType 4 +int styleable GenericDraweeHierarchy_overlayImage 5 +int styleable GenericDraweeHierarchy_placeholderImage 6 +int styleable GenericDraweeHierarchy_placeholderImageScaleType 7 +int styleable GenericDraweeHierarchy_pressedStateOverlayImage 8 +int styleable GenericDraweeHierarchy_progressBarAutoRotateInterval 9 +int styleable GenericDraweeHierarchy_progressBarImage 10 +int styleable GenericDraweeHierarchy_progressBarImageScaleType 11 +int styleable GenericDraweeHierarchy_retryImage 12 +int styleable GenericDraweeHierarchy_retryImageScaleType 13 +int styleable GenericDraweeHierarchy_roundAsCircle 14 +int styleable GenericDraweeHierarchy_roundBottomEnd 15 +int styleable GenericDraweeHierarchy_roundBottomLeft 16 +int styleable GenericDraweeHierarchy_roundBottomRight 17 +int styleable GenericDraweeHierarchy_roundBottomStart 18 +int styleable GenericDraweeHierarchy_roundTopEnd 19 +int styleable GenericDraweeHierarchy_roundTopLeft 20 +int styleable GenericDraweeHierarchy_roundTopRight 21 +int styleable GenericDraweeHierarchy_roundTopStart 22 +int styleable GenericDraweeHierarchy_roundWithOverlayColor 23 +int styleable GenericDraweeHierarchy_roundedCornerRadius 24 +int styleable GenericDraweeHierarchy_roundingBorderColor 25 +int styleable GenericDraweeHierarchy_roundingBorderPadding 26 +int styleable GenericDraweeHierarchy_roundingBorderWidth 27 +int styleable GenericDraweeHierarchy_viewAspectRatio 28 +int[] styleable GifTextureView { 0x0, 0x0 } +int styleable GifTextureView_gifSource 0 +int styleable GifTextureView_isOpaque 1 +int[] styleable GifView { 0x0, 0x0 } +int styleable GifView_freezesAnimation 0 +int styleable GifView_loopCount 1 +int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } +int styleable GradientColor_android_centerColor 0 +int styleable GradientColor_android_centerX 1 +int styleable GradientColor_android_centerY 2 +int styleable GradientColor_android_endColor 3 +int styleable GradientColor_android_endX 4 +int styleable GradientColor_android_endY 5 +int styleable GradientColor_android_gradientRadius 6 +int styleable GradientColor_android_startColor 7 +int styleable GradientColor_android_startX 8 +int styleable GradientColor_android_startY 9 +int styleable GradientColor_android_tileMode 10 +int styleable GradientColor_android_type 11 +int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } +int styleable GradientColorItem_android_color 0 +int styleable GradientColorItem_android_offset 1 +int[] styleable IMGColorRadio { 0x0, 0x0 } +int styleable IMGColorRadio_image_color 0 +int styleable IMGColorRadio_image_stroke_color 1 +int[] styleable LinearLayoutCompat { 0x1010126, 0x1010127, 0x10100af, 0x10100c4, 0x1010128, 0x0, 0x0, 0x0, 0x0 } +int styleable LinearLayoutCompat_android_baselineAligned 0 +int styleable LinearLayoutCompat_android_baselineAlignedChildIndex 1 +int styleable LinearLayoutCompat_android_gravity 2 +int styleable LinearLayoutCompat_android_orientation 3 +int styleable LinearLayoutCompat_android_weightSum 4 +int styleable LinearLayoutCompat_divider 5 +int styleable LinearLayoutCompat_dividerPadding 6 +int styleable LinearLayoutCompat_measureWithLargestChild 7 +int styleable LinearLayoutCompat_showDividers 8 +int[] styleable LinearLayoutCompat_Layout { 0x10100b3, 0x10100f5, 0x1010181, 0x10100f4 } +int styleable LinearLayoutCompat_Layout_android_layout_gravity 0 +int styleable LinearLayoutCompat_Layout_android_layout_height 1 +int styleable LinearLayoutCompat_Layout_android_layout_weight 2 +int styleable LinearLayoutCompat_Layout_android_layout_width 3 +int[] styleable ListPopupWindow { 0x10102ac, 0x10102ad } +int styleable ListPopupWindow_android_dropDownHorizontalOffset 0 +int styleable ListPopupWindow_android_dropDownVerticalOffset 1 +int[] styleable MenuGroup { 0x10101e0, 0x101000e, 0x10100d0, 0x10101de, 0x10101df, 0x1010194 } +int styleable MenuGroup_android_checkableBehavior 0 +int styleable MenuGroup_android_enabled 1 +int styleable MenuGroup_android_id 2 +int styleable MenuGroup_android_menuCategory 3 +int styleable MenuGroup_android_orderInCategory 4 +int styleable MenuGroup_android_visible 5 +int[] styleable MenuItem { 0x0, 0x0, 0x0, 0x0, 0x10101e3, 0x10101e5, 0x1010106, 0x101000e, 0x1010002, 0x10100d0, 0x10101de, 0x10101e4, 0x101026f, 0x10101df, 0x10101e1, 0x10101e2, 0x1010194, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable MenuItem_actionLayout 0 +int styleable MenuItem_actionProviderClass 1 +int styleable MenuItem_actionViewClass 2 +int styleable MenuItem_alphabeticModifiers 3 +int styleable MenuItem_android_alphabeticShortcut 4 +int styleable MenuItem_android_checkable 5 +int styleable MenuItem_android_checked 6 +int styleable MenuItem_android_enabled 7 +int styleable MenuItem_android_icon 8 +int styleable MenuItem_android_id 9 +int styleable MenuItem_android_menuCategory 10 +int styleable MenuItem_android_numericShortcut 11 +int styleable MenuItem_android_onClick 12 +int styleable MenuItem_android_orderInCategory 13 +int styleable MenuItem_android_title 14 +int styleable MenuItem_android_titleCondensed 15 +int styleable MenuItem_android_visible 16 +int styleable MenuItem_contentDescription 17 +int styleable MenuItem_iconTint 18 +int styleable MenuItem_iconTintMode 19 +int styleable MenuItem_numericModifiers 20 +int styleable MenuItem_showAsAction 21 +int styleable MenuItem_tooltipText 22 +int[] styleable MenuView { 0x101012f, 0x101012d, 0x1010130, 0x1010131, 0x101012c, 0x101012e, 0x10100ae, 0x0, 0x0 } +int styleable MenuView_android_headerBackground 0 +int styleable MenuView_android_horizontalDivider 1 +int styleable MenuView_android_itemBackground 2 +int styleable MenuView_android_itemIconDisabledAlpha 3 +int styleable MenuView_android_itemTextAppearance 4 +int styleable MenuView_android_verticalDivider 5 +int styleable MenuView_android_windowAnimationStyle 6 +int styleable MenuView_preserveIconSpacing 7 +int styleable MenuView_subMenuArrow 8 +int[] styleable PopupWindow { 0x10102c9, 0x1010176, 0x0 } +int styleable PopupWindow_android_popupAnimationStyle 0 +int styleable PopupWindow_android_popupBackground 1 +int styleable PopupWindow_overlapAnchor 2 +int[] styleable PopupWindowBackgroundState { 0x0 } +int styleable PopupWindowBackgroundState_state_above_anchor 0 +int[] styleable RecycleListView { 0x0, 0x0 } +int styleable RecycleListView_paddingBottomNoButtons 0 +int styleable RecycleListView_paddingTopNoTitle 1 +int[] styleable RecyclerView { 0x10100f1, 0x10100c4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable RecyclerView_android_descendantFocusability 0 +int styleable RecyclerView_android_orientation 1 +int styleable RecyclerView_fastScrollEnabled 2 +int styleable RecyclerView_fastScrollHorizontalThumbDrawable 3 +int styleable RecyclerView_fastScrollHorizontalTrackDrawable 4 +int styleable RecyclerView_fastScrollVerticalThumbDrawable 5 +int styleable RecyclerView_fastScrollVerticalTrackDrawable 6 +int styleable RecyclerView_layoutManager 7 +int styleable RecyclerView_reverseLayout 8 +int styleable RecyclerView_spanCount 9 +int styleable RecyclerView_stackFromEnd 10 +int[] styleable SearchView { 0x10100da, 0x1010264, 0x1010220, 0x101011f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable SearchView_android_focusable 0 +int styleable SearchView_android_imeOptions 1 +int styleable SearchView_android_inputType 2 +int styleable SearchView_android_maxWidth 3 +int styleable SearchView_closeIcon 4 +int styleable SearchView_commitIcon 5 +int styleable SearchView_defaultQueryHint 6 +int styleable SearchView_goIcon 7 +int styleable SearchView_iconifiedByDefault 8 +int styleable SearchView_layout 9 +int styleable SearchView_queryBackground 10 +int styleable SearchView_queryHint 11 +int styleable SearchView_searchHintIcon 12 +int styleable SearchView_searchIcon 13 +int styleable SearchView_submitBackground 14 +int styleable SearchView_suggestionRowLayout 15 +int styleable SearchView_voiceIcon 16 +int[] styleable SimpleDraweeView { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable SimpleDraweeView_actualImageResource 0 +int styleable SimpleDraweeView_actualImageScaleType 1 +int styleable SimpleDraweeView_actualImageUri 2 +int styleable SimpleDraweeView_backgroundImage 3 +int styleable SimpleDraweeView_fadeDuration 4 +int styleable SimpleDraweeView_failureImage 5 +int styleable SimpleDraweeView_failureImageScaleType 6 +int styleable SimpleDraweeView_overlayImage 7 +int styleable SimpleDraweeView_placeholderImage 8 +int styleable SimpleDraweeView_placeholderImageScaleType 9 +int styleable SimpleDraweeView_pressedStateOverlayImage 10 +int styleable SimpleDraweeView_progressBarAutoRotateInterval 11 +int styleable SimpleDraweeView_progressBarImage 12 +int styleable SimpleDraweeView_progressBarImageScaleType 13 +int styleable SimpleDraweeView_retryImage 14 +int styleable SimpleDraweeView_retryImageScaleType 15 +int styleable SimpleDraweeView_roundAsCircle 16 +int styleable SimpleDraweeView_roundBottomEnd 17 +int styleable SimpleDraweeView_roundBottomLeft 18 +int styleable SimpleDraweeView_roundBottomRight 19 +int styleable SimpleDraweeView_roundBottomStart 20 +int styleable SimpleDraweeView_roundTopEnd 21 +int styleable SimpleDraweeView_roundTopLeft 22 +int styleable SimpleDraweeView_roundTopRight 23 +int styleable SimpleDraweeView_roundTopStart 24 +int styleable SimpleDraweeView_roundWithOverlayColor 25 +int styleable SimpleDraweeView_roundedCornerRadius 26 +int styleable SimpleDraweeView_roundingBorderColor 27 +int styleable SimpleDraweeView_roundingBorderPadding 28 +int styleable SimpleDraweeView_roundingBorderWidth 29 +int styleable SimpleDraweeView_viewAspectRatio 30 +int[] styleable Spinner { 0x1010262, 0x10100b2, 0x1010176, 0x101017b, 0x0 } +int styleable Spinner_android_dropDownWidth 0 +int styleable Spinner_android_entries 1 +int styleable Spinner_android_popupBackground 2 +int styleable Spinner_android_prompt 3 +int styleable Spinner_popupTheme 4 +int[] styleable StateListDrawable { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 } +int styleable StateListDrawable_android_constantSize 0 +int styleable StateListDrawable_android_dither 1 +int styleable StateListDrawable_android_enterFadeDuration 2 +int styleable StateListDrawable_android_exitFadeDuration 3 +int styleable StateListDrawable_android_variablePadding 4 +int styleable StateListDrawable_android_visible 5 +int[] styleable StateListDrawableItem { 0x1010199 } +int styleable StateListDrawableItem_android_drawable 0 +int[] styleable SwitchButton { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable SwitchButton_sb_background 0 +int styleable SwitchButton_sb_border_width 1 +int styleable SwitchButton_sb_button_color 2 +int styleable SwitchButton_sb_checked 3 +int styleable SwitchButton_sb_checked_color 4 +int styleable SwitchButton_sb_checkline_color 5 +int styleable SwitchButton_sb_checkline_width 6 +int styleable SwitchButton_sb_effect_duration 7 +int styleable SwitchButton_sb_enable_effect 8 +int styleable SwitchButton_sb_shadow_color 9 +int styleable SwitchButton_sb_shadow_effect 10 +int styleable SwitchButton_sb_shadow_offset 11 +int styleable SwitchButton_sb_shadow_radius 12 +int styleable SwitchButton_sb_show_indicator 13 +int styleable SwitchButton_sb_uncheck_color 14 +int styleable SwitchButton_sb_uncheckcircle_color 15 +int styleable SwitchButton_sb_uncheckcircle_radius 16 +int styleable SwitchButton_sb_uncheckcircle_width 17 +int[] styleable SwitchCompat { 0x1010125, 0x1010124, 0x1010142, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable SwitchCompat_android_textOff 0 +int styleable SwitchCompat_android_textOn 1 +int styleable SwitchCompat_android_thumb 2 +int styleable SwitchCompat_showText 3 +int styleable SwitchCompat_splitTrack 4 +int styleable SwitchCompat_switchMinWidth 5 +int styleable SwitchCompat_switchPadding 6 +int styleable SwitchCompat_switchTextAppearance 7 +int styleable SwitchCompat_thumbTextPadding 8 +int styleable SwitchCompat_thumbTint 9 +int styleable SwitchCompat_thumbTintMode 10 +int styleable SwitchCompat_track 11 +int styleable SwitchCompat_trackTint 12 +int styleable SwitchCompat_trackTintMode 13 +int[] styleable TextAppearance { 0x10103ac, 0x1010161, 0x1010162, 0x1010163, 0x1010164, 0x1010098, 0x101009a, 0x101009b, 0x1010095, 0x1010097, 0x1010096, 0x0, 0x0 } +int styleable TextAppearance_android_fontFamily 0 +int styleable TextAppearance_android_shadowColor 1 +int styleable TextAppearance_android_shadowDx 2 +int styleable TextAppearance_android_shadowDy 3 +int styleable TextAppearance_android_shadowRadius 4 +int styleable TextAppearance_android_textColor 5 +int styleable TextAppearance_android_textColorHint 6 +int styleable TextAppearance_android_textColorLink 7 +int styleable TextAppearance_android_textSize 8 +int styleable TextAppearance_android_textStyle 9 +int styleable TextAppearance_android_typeface 10 +int styleable TextAppearance_fontFamily 11 +int styleable TextAppearance_textAllCaps 12 +int[] styleable Toolbar { 0x10100af, 0x1010140, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable Toolbar_android_gravity 0 +int styleable Toolbar_android_minHeight 1 +int styleable Toolbar_buttonGravity 2 +int styleable Toolbar_collapseContentDescription 3 +int styleable Toolbar_collapseIcon 4 +int styleable Toolbar_contentInsetEnd 5 +int styleable Toolbar_contentInsetEndWithActions 6 +int styleable Toolbar_contentInsetLeft 7 +int styleable Toolbar_contentInsetRight 8 +int styleable Toolbar_contentInsetStart 9 +int styleable Toolbar_contentInsetStartWithNavigation 10 +int styleable Toolbar_logo 11 +int styleable Toolbar_logoDescription 12 +int styleable Toolbar_maxButtonHeight 13 +int styleable Toolbar_navigationContentDescription 14 +int styleable Toolbar_navigationIcon 15 +int styleable Toolbar_popupTheme 16 +int styleable Toolbar_subtitle 17 +int styleable Toolbar_subtitleTextAppearance 18 +int styleable Toolbar_subtitleTextColor 19 +int styleable Toolbar_title 20 +int styleable Toolbar_titleMargin 21 +int styleable Toolbar_titleMarginBottom 22 +int styleable Toolbar_titleMarginEnd 23 +int styleable Toolbar_titleMarginStart 24 +int styleable Toolbar_titleMarginTop 25 +int styleable Toolbar_titleMargins 26 +int styleable Toolbar_titleTextAppearance 27 +int styleable Toolbar_titleTextColor 28 +int[] styleable View { 0x10100da, 0x1010000, 0x0, 0x0, 0x0 } +int styleable View_android_focusable 0 +int styleable View_android_theme 1 +int styleable View_paddingEnd 2 +int styleable View_paddingStart 3 +int styleable View_theme 4 +int[] styleable ViewBackgroundHelper { 0x10100d4, 0x0, 0x0 } +int styleable ViewBackgroundHelper_android_background 0 +int styleable ViewBackgroundHelper_backgroundTint 1 +int styleable ViewBackgroundHelper_backgroundTintMode 2 +int[] styleable ViewStubCompat { 0x10100d0, 0x10100f3, 0x10100f2 } +int styleable ViewStubCompat_android_id 0 +int styleable ViewStubCompat_android_inflatedId 1 +int styleable ViewStubCompat_android_layout 2 +int xml dcloud_file_provider 0x0 +int xml dcloud_gg_file_provider 0x0 diff --git a/nativeplugins/Hanyin-Plugin/android/classes.jar b/nativeplugins/Hanyin-Plugin/android/classes.jar new file mode 100644 index 0000000..3388629 --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/android/classes.jar Binary files differ diff --git a/nativeplugins/Hanyin-Plugin/android/hanyin_plugin1.0.4.aar b/nativeplugins/Hanyin-Plugin/android/hanyin_plugin1.0.4.aar new file mode 100644 index 0000000..3e0d952 --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/android/hanyin_plugin1.0.4.aar Binary files differ diff --git a/nativeplugins/Hanyin-Plugin/android/libs/CPCL_V1.07.jar b/nativeplugins/Hanyin-Plugin/android/libs/CPCL_V1.07.jar new file mode 100644 index 0000000..5d2ae7d --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/android/libs/CPCL_V1.07.jar Binary files differ diff --git a/nativeplugins/Hanyin-Plugin/android/proguard.txt b/nativeplugins/Hanyin-Plugin/android/proguard.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/android/proguard.txt diff --git a/nativeplugins/Hanyin-Plugin/package.json b/nativeplugins/Hanyin-Plugin/package.json new file mode 100644 index 0000000..99c72d3 --- /dev/null +++ b/nativeplugins/Hanyin-Plugin/package.json @@ -0,0 +1,21 @@ +{ + "name": "HanyinPlugin", + "id": "Hanyin-Plugin", + "version": "1.0.4", + "description": "姹夊嵃渚挎惡寮忔墦鍗版満", + "_dp_type":"nativeplugin", + "_dp_nativeplugin":{ + "android": { + "plugins": [ + { + "type": "module", + "name": "Hanyin-Plugin", + "class": "com.example.hanyin_plugin.Methods" + } + ], + "integrateType": "aar", + "minSdkVersion" : 19, + "targetSdkVersion": 31 + } + } +} \ No newline at end of file diff --git a/pages.json b/pages.json index 504640b..6318f8b 100644 --- a/pages.json +++ b/pages.json @@ -1,11 +1,27 @@ { "pages": [ //pages鏁扮粍涓涓�椤硅〃绀哄簲鐢ㄥ惎鍔ㄩ〉锛屽弬鑰冿細https://uniapp.dcloud.io/collocation/pages { + "path": "pages/print/printUNI", + "style": { + "navigationBarTitleText": "UNI鎵撳嵃" + } + }, + { + "path": "pages/print/print", + "style": { + "navigationBarTitleText": "鎵撳嵃" + } + }, + + + { "path": "pages/print/qr", "style": { "navigationBarTitleText": "浜岀淮鐮�" } }, + + { "path": "pages/login/login", "style": { @@ -66,18 +82,8 @@ "navigationBarTitleText": "搴撳瓨鐩樼偣" } }, - { - "path": "pages/print/print", - "style": { - "navigationBarTitleText": "鎵撳嵃" - } - }, - { - "path": "pages/print/printUNI", - "style": { - "navigationBarTitleText": "UNI鎵撳嵃" - } - }, + + { "path": "pages/login/logOut", "style": { diff --git a/pages/print/printUNI.vue b/pages/print/printUNI.vue index d9bc4da..75b8835 100644 --- a/pages/print/printUNI.vue +++ b/pages/print/printUNI.vue @@ -1,723 +1,131 @@ <template> - <view> - <page-head :title="title"></page-head> - <view class="uni-padding-wrap uni-common-mt"> - <view> - 鏈摑鐗欏崗璁彧鏀寔浣庡姛鑰楄摑鐗欏崗璁産le銆傚鏋滄兂杩炴帴闈瀊le钃濈墮璁惧锛岃鍦ㄧぞ鍖烘悳绱� Native.js 钃濈墮銆� + <view class="content"> + <view> + <view class="bluetoothConnected"> + <view class="bluetoothList" v-for="(item,index) in GET_CONNECTBLEDATA" :key="index" @tap="confirm_bluetooth(item)"> + <view class="bluetoothList-name">鍚嶇О:{{item.name}}</view> + <view class="bluetoothList-mac">鍦板潃:{{item.mac}}</view> + </view> </view> - <view class="uni-btn-v"> - <button type="primary" :disabled="disabled[0]" @click="openBluetoothAdapter"> - 鍒濆鍖栬摑鐗欐ā鍧� - </button> - <view v-if="!adapterState.available"> - {{ '钃濈墮閫傞厤鍣ㄤ笉鍙敤,璇峰垵濮嬪寲钃濈墮妯″潡' }} + <button type="default" @click="search_bluetooth">鎼滅储钃濈墮</button> + <button @click="senBleLabel">鎵撳嵃</button> + <view class="bluetoothItem" v-if="GET_INFODATA"> + <view class="bluetoothList" v-for="(item,index) in GET_INFODATA" :key="index" @tap="confirm_bluetooth(item)"> + <view class="bluetoothList-name">鍚嶇О:{{item.name}}</view> + <view class="bluetoothList-mac">鍦板潃:{{item.mac}}</view> </view> - <button - type="primary" - :loading="searchLoad" - :disabled="disabled[1]" - @click="startBluetoothDevicesDiscovery" - > - 寮�濮嬫悳绱㈣摑鐗欒澶� - </button> - <button - type="primary" - :disabled="disabled[2]" - @click="stopBluetoothDevicesDiscovery(false)" - > - 鍋滄鎼滅储钃濈墮璁惧 - </button> - <button - type="primary" - :loading="newDeviceLoad" - :disabled="disabled[3]" - @click="queryDevices" - > - 閫夋嫨璁惧 - </button> - <view v-if="equipment.length > 0"> - {{ - (connected ? '宸茶繛鎺ヨ澶�' : '宸查�夋嫨璁惧') + - ' : ' + - equipment[0].name + - ' (' + - equipment[0].deviceId + - ')' - }} - </view> - <button type="primary" :disabled="disabled[4]" @click="createBLEConnection"> - 杩炴帴钃濈墮璁惧 - </button> - <button type="primary" :disabled="disabled[5]" @click="getBLEDeviceServices"> - 閫夋嫨璁惧鏈嶅姟 - </button> - <view v-if="servicesData.length > 0">宸查�夋湇鍔uid锛歿{ servicesData[0].uuid }}</view> - <button type="primary" :disabled="disabled[6]" @click="getBLEDeviceCharacteristics"> - 鑾峰彇鏈嶅姟鐨勭壒寰佸�� - </button> - <view v-if="characteristicsData.length > 0"> - <view class="uni-list_name">uuid:{{ characteristicsData[0].uuid }}</view> - <view class="uni-list_item"> - 鏄惁鏀寔 read 鎿嶄綔:{{ characteristicsData[0].properties.read }} - </view> - <view class="uni-list_item"> - 鏄惁鏀寔 write 鎿嶄綔:{{ characteristicsData[0].properties.write }} - </view> - <view class="uni-list_item"> - 鏄惁鏀寔 notify 鎿嶄綔:{{ characteristicsData[0].properties.notify }} - </view> - <view class="uni-list_item"> - 鏄惁鏀寔 indicate 鎿嶄綔:{{ characteristicsData[0].properties.indicate }} - </view> - </view> - <!-- <button type="primary" :disabled="disabled[7]" @click="readBLECharacteristicValue"> - 璇诲彇鐗瑰緛鍊兼暟鎹� - </button> - <view v-if="valueChangeData.serviceId"> - <view class="list-name"> - 鐗瑰緛鍊兼渶鏂扮殑鍊�:{{ valueChangeData.value || '杩樻病鏈夋渶鏂板��' }} - </view> - </view> --> - <!-- <button type="primary" :disabled="disabled[8]" @click="w">鍐欏叆鐗瑰緛鍊兼暟鎹�</button> --> - <button type="primary" :disabled="disabled[9]" @click="closeBLEConnection"> - 鏂紑钃濈墮璁惧 - </button> - <button type="primary" :disabled="disabled[10]" @click="closeBluetoothAdapter"> - 鍏抽棴钃濈墮妯″潡 - </button> </view> - </view> - <!-- 閬僵 --> - <view v-if="maskShow" class="uni-mask" @touchmove.stop.prevent="moveHandle" @click="maskclose"> - <scroll-view class="uni-scroll_box" scroll-y @touchmove.stop.prevent="moveHandle" @click.stop="moveHandle"> - <view class="uni-title"> - 宸茬粡鍙戠幇{{ list.length }}{{ showMaskType === 'device' ? '鍙拌澶�' : '涓湇鍔�' }}: - </view> - <view - class="uni-list-box" - v-for="(item, index) in list" - :key="index" - @click="tapQuery(item)" - > - <view v-if="showMaskType === 'device'"> - <view class="uni-list_name">{{ item.name || item.localName }}</view> - <view class="uni-list_item">淇″彿寮哄害:{{ item.RSSI }}dBm</view> - <view class="uni-list_item">UUID:{{ item.deviceId }}</view> - <!-- <view class="list-item" v-if="showMaskType === 'device'"> - Service鏁伴噺:{{ item.advertisServiceUUIDs.length }} - </view> --> - </view> - <view v-if="showMaskType === 'service'"> - <view class="uni-list_item" style="line-height:2.2;"> - UUID: {{ item.uuid }} - <text v-if="showMaskType === 'service'"> - {{ item.isPrimary ? '锛堜富鏈嶅姟锛�' : '' }} - </text> - </view> - </view> - <view v-if="showMaskType === 'characteristics'"> - <view class="uni-list_name">uuid:{{ item.uuid }}</view> - <view class="uni-list_item">鏄惁鏀寔 read 鎿嶄綔:{{ item.properties.read }}</view> - <view class="uni-list_item"> - 鏄惁鏀寔 write 鎿嶄綔:{{ item.properties.write }} - </view> - <view class="uni-list_item"> - 鏄惁鏀寔 notify 鎿嶄綔:{{ item.properties.notify }} - </view> - <view class="uni-list_item"> - 鏄惁鏀寔 indicate 鎿嶄綔:{{ item.properties.indicate }} - </view> - </view> - </view> - </scroll-view> </view> </view> </template> + <script> -export default { - data() { - return { - title: 'bluetooth', - disabled: [false, true, true, true, true, true, true, true, true, true, true], - newDeviceLoad: false, - searchLoad: false, - maskShow: false, - equipment: [], - adapterState: { - discovering: false, - available: false + import printConnect from "@/common/print.js"; //寮曞叆鎵撳嵃鏈烘ā鏉挎枃浠� + let _this = null; + import { + mapGetters, + mapActions + } from 'vuex'; + import { + GET_INFODATA, + GET_CONNECTBLEDATA + } from "@/store/gettersType.js"; + import { + SET_CONNECTBLEDATA + } from '@/store/actionsType.js'; + // #ifdef APP-PLUS + const HanyinPlugin = uni.requireNativePlugin('Hanyin-Plugin'); //姹夊嵃 + // #endif + let print; + export default { + data() { + return { + bArray: [], //鐢ㄤ簬鎼滅储钃濈墮鍘婚噸鐢ㄧ殑 + no_match_list: [], //娌℃湁閰嶅鐨勮摑鐗欏垪琛� + match_list: "", //宸茶繛鎺ヨ摑鐗欐墦鍗版満 + val: "", + dateTimer: "", + valArr: [], + // 宸存灙鍙傛暟 + // broadcase_actions: "com.android.receive_scan_action", + // broadcast_flag: "data" + }; + }, + computed: { + ...mapGetters([GET_INFODATA, GET_CONNECTBLEDATA]) + }, + onShow() { + uni.hideLoading(); + //妫�鏌ユ槸鍚﹀凡杩炴帴钃濈墮 + // this.$check_bluetooth_connect(); + console.log('onShow'); + }, + onHide() { + console.log('onHide'); + }, + onUnload() { + console.log('onUnload'); + }, + onLoad(options) { + _this = this; + this.$init_bluetooth(); + }, + methods: { + ...mapActions([SET_CONNECTBLEDATA]), + senBleLabel() { + // console.log(this.$Mock.order_data); + if(!print) return; + print.startPrint(this.$Mock.order_data); }, - connected: false, - showMaskType: 'device', - servicesData: [], - characteristicsData: [], - valueChangeData: {}, - isStop:true , - list: [] - }; - }, - onLoad() { - this.onBLEConnectionStateChange(); - }, - methods: { - moveHandle() {}, - /** - * 鍏抽棴閬僵 - */ - maskclose(){ - this.maskShow = false; - }, - /** - * 閫夋嫨璁惧 - */ - queryDevices() { - // this.newDeviceLoad = true; - this.showMaskType = 'device'; - this.maskShow = true; - }, - tapQuery(item) { - if (this.showMaskType === 'device') { - this.$set(this.disabled, 4, false); - if (this.equipment.length > 0) { - this.equipment[0] = item; - } else { - this.equipment.push(item); - } - this.newDeviceLoad = false; - } - if (this.showMaskType === 'service') { - this.$set(this.disabled, 6, false); - if (this.servicesData.length > 0) { - this.servicesData[0] = item; - } else { - this.servicesData.push(item); - } - } - if (this.showMaskType === 'characteristics') { - this.$set(this.disabled, 7, false); - if (this.characteristicsData.length > 0) { - this.characteristicsData[0] = item; - } else { - this.characteristicsData.push(item); - } - } - this.maskShow = false; - }, - /** - * 鍒濆鍖栬摑鐗欒澶� - */ - openBluetoothAdapter() { - uni.openBluetoothAdapter({ - success: e => { - console.log('鍒濆鍖栬摑鐗欐垚鍔�:' + e.errMsg); - console.log(JSON.stringify(e)); - this.isStop = false ; - this.$set(this.disabled, 0, true); - this.$set(this.disabled, 1, false); - this.$set(this.disabled, 10, false); - this.getBluetoothAdapterState(); - }, - fail: e => { - console.log(e) - console.log('鍒濆鍖栬摑鐗欏け璐ワ紝閿欒鐮侊細' + (e.errCode || e.errMsg)); - if (e.errCode !== 0) { - initTypes(e.errCode,e.errMsg); - } - } - }); - }, - /** - * 寮�濮嬫悳绱㈣摑鐗欒澶� - */ - startBluetoothDevicesDiscovery() { - uni.startBluetoothDevicesDiscovery({ - success: e => { - console.log('寮�濮嬫悳绱㈣摑鐗欒澶�:' + e.errMsg); - this.searchLoad = true; - this.$set(this.disabled, 1, true); - this.$set(this.disabled, 2, false); - this.$set(this.disabled, 3, false); - this.onBluetoothDeviceFound(); - }, - fail: e => { - console.log('鎼滅储钃濈墮璁惧澶辫触锛岄敊璇爜锛�' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); - } - } - }); - }, - /** - * 鍋滄鎼滅储钃濈墮璁惧 - */ - stopBluetoothDevicesDiscovery(types) { - uni.stopBluetoothDevicesDiscovery({ - success: e => { - console.log('鍋滄鎼滅储钃濈墮璁惧:' + e.errMsg); - if (types) { - this.$set(this.disabled, 1, true); - } else { - this.$set(this.disabled, 1, false); - } - this.$set(this.disabled, 2, true); - // this.$set(this.disabled, 3, true); - this.searchLoad = false; - }, - fail: e => { - console.log('鍋滄鎼滅储钃濈墮璁惧澶辫触锛岄敊璇爜锛�' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); - } - } - }); - }, - /** - * 鍙戠幇澶栧洿璁惧 - */ - onBluetoothDeviceFound() { - uni.onBluetoothDeviceFound(devices => { - console.log('寮�濮嬬洃鍚鎵惧埌鏂拌澶囩殑浜嬩欢'); - // this.$set(this.disabled, 3, false); - this.getBluetoothDevices(); - }); - }, - /** - * 鑾峰彇鍦ㄨ摑鐗欐ā鍧楃敓鏁堟湡闂存墍鏈夊凡鍙戠幇鐨勮摑鐗欒澶囥�傚寘鎷凡缁忓拰鏈満澶勪簬杩炴帴鐘舵�佺殑璁惧銆� - */ - getBluetoothDevices() { - uni.getBluetoothDevices({ - success: res => { - this.newDeviceLoad = false; - console.log('鑾峰彇钃濈墮璁惧鎴愬姛:' + res.errMsg); - // console.log(JSON.stringify(res)) - this.list = res.devices; - }, - fail: e => { - console.log('鑾峰彇钃濈墮璁惧閿欒锛岄敊璇爜锛�' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); - } - } - }); - }, - /** - * 鑾峰彇鏈満钃濈墮閫傞厤鍣ㄧ姸鎬� - */ - getBluetoothAdapterState() { - console.log('--->'); - uni.getBluetoothAdapterState({ - success: res => { - console.log(JSON.stringify(res)); - this.adapterState = res; - }, - fail: e => { - console.log('鑾峰彇鏈満钃濈墮閫傞厤鍣ㄧ姸鎬佸け璐ワ紝閿欒鐮侊細' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); - } - } - }); - }, - /** - * 杩炴帴浣庡姛鑰楄摑鐗� - */ - createBLEConnection() { - let deviceId = this.equipment[0].deviceId; - uni.showToast({ - title: '杩炴帴钃濈墮...', - icon: 'loading', - duration: 99999 - }); - uni.createBLEConnection({ - // 杩欓噷鐨� deviceId 闇�瑕佸凡缁忛�氳繃 createBLEConnection 涓庡搴旇澶囧缓绔嬮摼鎺� - deviceId, - success: res => { + // 杩炴帴鎵撳嵃鏈� + confirm_bluetooth(item) { + let { + name, + mac + } = item; + //鍒ゆ柇钃濈墮鏄惁鎵撳紑 + this.$check_bluetooth_open().then(res => { console.log(res); - console.log('杩炴帴钃濈墮鎴愬姛:' + res.errMsg); - // 杩炴帴璁惧鍚庢柇寮�鎼滅储 骞朵笖涓嶈兘鎼滅储璁惧 - this.stopBluetoothDevicesDiscovery(true); - uni.hideToast(); - uni.showToast({ - title: '杩炴帴鎴愬姛', - icon: 'success', - duration: 2000 - }); - this.$set(this.disabled, 3, true); - this.$set(this.disabled, 4, true); - this.$set(this.disabled, 5, false); - this.$set(this.disabled, 9, false); - this.connected = true; - }, - fail: e => { - console.log('杩炴帴浣庡姛鑰楄摑鐗欏け璐ワ紝閿欒鐮侊細' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); + //杩涜鎵撳嵃鏈鸿繛鎺� + if (res) { + print =new printConnect(item); //鎵撳嵃鏈鸿繛鎺� } - } - }); - }, - /** - * 鏂紑涓庝綆鍔熻�楄摑鐗欒澶囩殑杩炴帴 - */ - closeBLEConnection() { - let deviceId = this.equipment[0].deviceId; - uni.closeBLEConnection({ - deviceId, - success: res => { - console.log(res); - console.log('鏂紑浣庡姛鑰楄摑鐗欐垚鍔�:' + res.errMsg); - this.$set(this.disabled, 1, false); - this.$set(this.disabled, 3, true); - this.$set(this.disabled, 4, true); - this.$set(this.disabled, 5, true); - this.$set(this.disabled, 6, true); - this.$set(this.disabled, 7, true); - this.$set(this.disabled, 8, true); - this.$set(this.disabled, 9, true); - this.equipment = []; - this.servicesData = []; - this.characteristicsData = []; - }, - fail: e => { - console.log('鏂紑浣庡姛鑰楄摑鐗欐垚鍔燂紝閿欒鐮侊細' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); + }) + }, + //鎼滅储娌″尮閰嶇殑钃濈墮璁惧 + search_bluetooth(address) { + let _this = this; + //妫�鏌ヨ摑鐗欐槸鍚﹀紑鍚� + this.$check_bluetooth_open().then(ores => { + if (ores) { + console.log(ores); + //鎼滅储钃濈墮 + _this.$search_bluetooth().then(bres => { + console.log(bres); + if (bres.code) { + _this.$search_pipei().then(pres => { + console.log(pres); + }) + } + }) } - } - }); - }, - /** - * 鑾峰彇鎵�鏈夋湇鍔� - */ - getBLEDeviceServices() { - let deviceId = this.equipment[0].deviceId; - console.log('鑾峰彇鎵�鏈夋湇鍔$殑 uuid:' + deviceId); - - uni.getBLEDeviceServices({ - // 杩欓噷鐨� deviceId 闇�瑕佸凡缁忛�氳繃 createBLEConnection 涓庡搴旇澶囧缓绔嬮摼鎺� - deviceId, - success: res => { - console.log(JSON.stringify(res.services)); - console.log('鑾峰彇璁惧鏈嶅姟鎴愬姛:' + res.errMsg); - this.$set(this.disabled, 7, true); - this.$set(this.disabled, 8, true); - this.showMaskType = 'service'; - this.list = res.services; - - this.characteristicsData = []; - if (this.list.length <= 0) { - toast('鑾峰彇鏈嶅姟澶辫触锛岃閲嶈瘯!'); - return; - } - this.maskShow = true; - }, - fail: e => { - console.log('鑾峰彇璁惧鏈嶅姟澶辫触锛岄敊璇爜锛�' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); - } - } - }); - }, - /** - * 鑾峰彇鏌愪釜鏈嶅姟涓嬬殑鎵�鏈夌壒寰佸�� - */ - getBLEDeviceCharacteristics() { - let deviceId = this.equipment[0].deviceId; - let serviceId = this.servicesData[0].uuid; - console.log(deviceId); - console.log(serviceId); - uni.getBLEDeviceCharacteristics({ - // 杩欓噷鐨� deviceId 闇�瑕佸凡缁忛�氳繃 createBLEConnection 涓庡搴旇澶囧缓绔嬮摼鎺� - deviceId, - // 杩欓噷鐨� serviceId 闇�瑕佸湪 getBLEDeviceServices 鎺ュ彛涓幏鍙� - serviceId, - success: res => { - console.log(JSON.stringify(res)); - console.log('鑾峰彇鐗瑰緛鍊兼垚鍔�:' + res.errMsg); - this.$set(this.disabled, 7, true); - this.valueChangeData = {}; - this.showMaskType = 'characteristics'; - this.list = res.characteristics; - if (this.list.length <= 0) { - toast('鑾峰彇鐗瑰緛鍊煎け璐ワ紝璇烽噸璇�!'); - return; - } - this.maskShow = true; - }, - fail: e => { - console.log('鑾峰彇鐗瑰緛鍊煎け璐ワ紝閿欒鐮侊細' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); - } - } - }); - }, - /** - * 鐩戝惉浣庡姛鑰楄摑鐗欒繛鎺ョ姸鎬佺殑鏀瑰彉浜嬩欢銆傚寘鎷紑鍙戣�呬富鍔ㄨ繛鎺ユ垨鏂紑杩炴帴锛岃澶囦涪澶憋紝杩炴帴寮傚父鏂紑绛夌瓑 - */ - onBLEConnectionStateChange() { - uni.onBLEConnectionStateChange(res => { - // 璇ユ柟娉曞洖璋冧腑鍙互鐢ㄤ簬澶勭悊杩炴帴鎰忓鏂紑绛夊紓甯告儏鍐� - console.log(`钃濈墮杩炴帴鐘舵�� -------------------------->`); - console.log(JSON.stringify(res)); - if (!res.connected) { - if(this.isStop) return ; - console.log('鏂紑浣庡姛鑰楄摑鐗欐垚鍔�:'); - this.$set(this.disabled, 1, false); - this.$set(this.disabled, 3, true); - this.$set(this.disabled, 4, true); - this.$set(this.disabled, 5, true); - this.$set(this.disabled, 6, true); - this.$set(this.disabled, 7, true); - this.$set(this.disabled, 8, true); - this.$set(this.disabled, 9, true); - this.searchLoad = false; - this.equipment = []; - this.servicesData = []; - this.characteristicsData = []; - this.valueChangeData = {}; - toast('宸茬粡鏂紑褰撳墠钃濈墮杩炴帴'); - } - }); - }, - /** - * 璇诲彇浣庡姛鑰楄摑鐗欒澶囩殑鐗瑰緛鍊肩殑浜岃繘鍒舵暟鎹�笺�傛敞鎰忥細蹇呴』璁惧鐨勭壒寰佸�兼敮鎸� read 鎵嶅彲浠ユ垚鍔熻皟鐢� - */ - readBLECharacteristicValue() { - let deviceId = this.equipment[0].deviceId; - let serviceId = this.servicesData[0].uuid; - let characteristicId = this.characteristicsData[0].uuid; - console.log(deviceId); - console.log(serviceId); - console.log(characteristicId); - uni.readBLECharacteristicValue({ - // 杩欓噷鐨� deviceId 闇�瑕佸凡缁忛�氳繃 createBLEConnection 涓庡搴旇澶囧缓绔嬮摼鎺� - deviceId, - // 杩欓噷鐨� serviceId 闇�瑕佸湪 getBLEDeviceServices 鎺ュ彛涓幏鍙� - serviceId, - // 杩欓噷鐨� characteristicId 闇�瑕佸湪 getBLEDeviceCharacteristics 鎺ュ彛涓幏鍙� - characteristicId, - success: res => { - console.log('璇诲彇璁惧鏁版嵁鍊兼垚鍔�'); - console.log(JSON.stringify(res)); - this.notifyBLECharacteristicValueChange(); - }, - fail(e) { - console.log('璇诲彇璁惧鏁版嵁鍊煎け璐ワ紝閿欒鐮侊細' + e.errCode); - if (e.errCode !== 0) { - initTypes(e.errCode); - } - } - }); - this.onBLECharacteristicValueChange(); - }, - /** - * 鐩戝惉浣庡姛鑰楄摑鐗欒澶囩殑鐗瑰緛鍊煎彉鍖栦簨浠躲�傚繀椤诲厛鍚敤 notifyBLECharacteristicValueChange 鎺ュ彛鎵嶈兘鎺ユ敹鍒拌澶囨帹閫佺殑 notification銆� - */ - onBLECharacteristicValueChange() { - // 蹇呴』鍦ㄨ繖閲岀殑鍥炶皟鎵嶈兘鑾峰彇 - uni.onBLECharacteristicValueChange(characteristic => { - console.log('鐩戝惉浣庡姛鑰楄摑鐗欒澶囩殑鐗瑰緛鍊煎彉鍖栦簨浠舵垚鍔�'); - console.log(JSON.stringify(characteristic)); - this.valueChangeData = characteristic; - }); - }, - /** - * 璁㈤槄鎿嶄綔鎴愬姛鍚庨渶瑕佽澶囦富鍔ㄦ洿鏂扮壒寰佸�肩殑 value锛屾墠浼氳Е鍙� uni.onBLECharacteristicValueChange 鍥炶皟銆� - */ - notifyBLECharacteristicValueChange() { - let deviceId = this.equipment[0].deviceId; - let serviceId = this.servicesData[0].uuid; - let characteristicId = this.characteristicsData[0].uuid; - let notify = this.characteristicsData[0].properties.notify; - console.log(deviceId); - console.log(serviceId); - console.log(characteristicId); - console.log(notify); - uni.notifyBLECharacteristicValueChange({ - state: true, // 鍚敤 notify 鍔熻兘 - // 杩欓噷鐨� deviceId 闇�瑕佸凡缁忛�氳繃 createBLEConnection 涓庡搴旇澶囧缓绔嬮摼鎺� - deviceId, - // 杩欓噷鐨� serviceId 闇�瑕佸湪 getBLEDeviceServices 鎺ュ彛涓幏鍙� - serviceId, - // 杩欓噷鐨� characteristicId 闇�瑕佸湪 getBLEDeviceCharacteristics 鎺ュ彛涓幏鍙� - characteristicId, - success(res) { - console.log('notifyBLECharacteristicValueChange success:' + res.errMsg); - console.log(JSON.stringify(res)); - } - }); - }, - /** - * 鏂紑钃濈墮妯″潡 - */ - closeBluetoothAdapter(OBJECT) { - uni.closeBluetoothAdapter({ - success: res => { - console.log('鏂紑钃濈墮妯″潡鎴愬姛'); - this.isStop = true ; - this.$set(this.disabled, 0, false); - this.$set(this.disabled, 1, true); - this.$set(this.disabled, 2, true); - this.$set(this.disabled, 3, true); - this.$set(this.disabled, 4, true); - this.$set(this.disabled, 5, true); - this.$set(this.disabled, 6, true); - this.$set(this.disabled, 7, true); - this.$set(this.disabled, 8, true); - this.$set(this.disabled, 9, true); - this.$set(this.disabled, 10, true); - this.equipment = []; - this.servicesData = []; - this.characteristicsData = []; - this.valueChangeData = {}; - this.adapterState = []; - this.searchLoad =false; - toast('鏂紑钃濈墮妯″潡'); - } - }); + }) + } } } -}; - -/** - * 鍒ゆ柇鍒濆鍖栬摑鐗欑姸鎬� - */ -function initTypes(code, errMsg) { - switch (code) { - case 10000: - toast('鏈垵濮嬪寲钃濈墮閫傞厤鍣�'); - break; - case 10001: - toast('鏈娴嬪埌钃濈墮锛岃鎵撳紑钃濈墮閲嶈瘯锛�'); - break; - case 10002: - toast('娌℃湁鎵惧埌鎸囧畾璁惧'); - break; - case 10003: - toast('杩炴帴澶辫触'); - break; - case 10004: - toast('娌℃湁鎵惧埌鎸囧畾鏈嶅姟'); - break; - case 10005: - toast('娌℃湁鎵惧埌鎸囧畾鐗瑰緛鍊�'); - break; - case 10006: - toast('褰撳墠杩炴帴宸叉柇寮�'); - break; - case 10007: - toast('褰撳墠鐗瑰緛鍊间笉鏀寔姝ゆ搷浣�'); - break; - case 10008: - toast('鍏朵綑鎵�鏈夌郴缁熶笂鎶ョ殑寮傚父'); - break; - case 10009: - toast('Android 绯荤粺鐗规湁锛岀郴缁熺増鏈綆浜� 4.3 涓嶆敮鎸� BLE'); - break; - default: - toast(errMsg); - } -} - -/** - * 寮瑰嚭妗嗗皝瑁� - */ -function toast(content, showCancel = false) { - uni.showModal({ - title: '鎻愮ず', - content, - showCancel - }); -} </script> -<style> - -.uni-title { - /* width: 100%; */ - /* height: 80rpx; */ - text-align: center; -} - -.uni-mask { - position: fixed; - top: 0; - left: 0; - bottom: 0; - display: flex; - align-items: center; - width: 100%; - background: rgba(0, 0, 0, 0.6); - padding: 0 30rpx; - box-sizing: border-box; -} - -.uni-scroll_box { - height: 70%; - background: #fff; - border-radius: 20rpx; -} -.uni-list-box { - margin: 0 20rpx; - padding: 15rpx 0; - border-bottom: 1px #f5f5f5 solid; - box-sizing: border-box; -} -.uni-list:last-child { - border: none; -} -.uni-list_name { - font-size: 30rpx; - color: #333; -} -.uni-list_item { - font-size: 24rpx; - color: #555; - line-height: 1.5; -} - -.uni-success_box { - position: absolute; - left: 0; - bottom: 0; - min-height: 100rpx; - width: 100%; - background: #fff; - box-sizing: border-box; - border-top: 1px #eee solid; -} -.uni-success_sub { - /* width: 100%%; */ - height: 100rpx; - display: flex; - justify-content: space-between; - align-items: center; - padding: 0 30rpx; -} -.uni-close_button { - padding: 0 20rpx; - height: 60rpx; - line-height: 60rpx; - background: #ce3c39; - color: #ffffff; - border-radius: 10rpx; -} -.uni-success_content { - height: 600rpx; - margin: 30rpx; - margin-top: 0; - border: 1px #eee solid; - padding: 30rpx; -} -.uni-content_list { - padding-bottom: 10rpx; - border-bottom: 1px #f5f5f5 solid; -} -.uni-tips { - text-align: center; - font-size: 24rpx; - color: #666; -} +<style lang="scss"> + .bluetoothItem { + width: 100%; + height: 100%; + + .bluetoothList { + display: flex; + flex-direction: column; + padding: 20rpx; + border-bottom: 1rpx solid #BEBEBE; + font-size: 18rpx; + } + } </style> diff --git a/store/actionsType.js b/store/actionsType.js new file mode 100644 index 0000000..228ee33 --- /dev/null +++ b/store/actionsType.js @@ -0,0 +1,11 @@ +//bluetooth + +const SET_INFODATA = "SET_INFODATA"; +const SET_CONNECTBLEDATA = "SET_CONNECTBLEDATA"; +const SET_CONNECTPRINTBLE = "SET_CONNECTPRINTBLE" + +export { + SET_INFODATA, + SET_CONNECTBLEDATA, + SET_CONNECTPRINTBLE +} \ No newline at end of file diff --git a/store/gettersType.js b/store/gettersType.js new file mode 100644 index 0000000..2bfb080 --- /dev/null +++ b/store/gettersType.js @@ -0,0 +1,13 @@ + + +//bluetooth +const GET_CONNECTBLEDATA = "GET_CONNECTBLEDATA"; +const GET_INFODATA = "GET_INFODATA"; +const GET_CONNECTRINTDATA = "GET_CONNECTRINTDATA"; + + +export{ + GET_CONNECTBLEDATA, + GET_INFODATA, + GET_CONNECTRINTDATA +} \ No newline at end of file diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..7389b1b --- /dev/null +++ b/store/index.js @@ -0,0 +1,15 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; + +//vuex妯″潡寮曞叆 +import Bluetooth from './modules/bluetooth.js'; //瀛樺偍钃濈墮璁惧淇℃伅 +//vue浣跨敤vuex; +Vue.use(Vuex); + +export default new Vuex.Store({ + // 寮�鍚弗鏍兼ā寮�,浠呭紑鍙戞ā寮忎笅鍚敤,鍙戝竷鐜涓嬪彇娑� + strict: true, + modules:{ + Bluetooth + } +}) \ No newline at end of file diff --git a/store/modules/bluetooth.js b/store/modules/bluetooth.js new file mode 100644 index 0000000..8ed1904 --- /dev/null +++ b/store/modules/bluetooth.js @@ -0,0 +1,54 @@ +import {SET_INFODATA,SET_CONNECTBLEDATA,SET_CONNECTPRINTBLE} from '@/store/actionsType.js'; +import {GET_CONNECTBLEDATA,GET_INFODATA,GET_CONNECTRINTDATA} from '@/store/gettersType.js'; +const state = { + BLEInfoData:[], //瀛樺偍钃濈墮鍒楄〃 + connectBLEData:[], //瀛樺偍宸查摼鎺ヨ摑鐗欏垪琛� + connectPrintBLE:{} //瀛樺偍宸茶繛鎺ユ墦鍗版満钃濈墮,瀛樺叆缂撳瓨 +} +const mutations = { + [SET_INFODATA](state,value){ + if(value instanceof Array){ + state.BLEInfoData = value; + }else{ + state.BLEInfoData.push(value); + } + }, + [SET_CONNECTBLEDATA](state,value){ + if(value instanceof Array){ + state.connectBLEData = value; + }else{ + state.connectBLEData.push(value); + } + }, + [SET_CONNECTPRINTBLE](state,value){ + state.connectPrintBLE = value; + } +} +const actions = { + [SET_INFODATA]({commit},value){ + commit(SET_INFODATA,value); + }, + [SET_CONNECTBLEDATA]({commit},value){ + commit(SET_CONNECTBLEDATA,value); + }, + [SET_CONNECTPRINTBLE]({commit},value){ + commit(SET_CONNECTPRINTBLE,value); + } +} +const getters = { + [GET_CONNECTBLEDATA]:(state)=>{ + return state.connectBLEData; + }, + [GET_INFODATA]:(state)=>{ + return state.BLEInfoData; + }, + [GET_CONNECTRINTDATA]:(state)=>{ + return state.connectPrintBLE + } +} +export default{ + state, + getters, + actions, + mutations +}; -- Gitblit v1.9.1