123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- <template>
- <view>
- <!-- <web-view src="http://61.177.40.178:8000" @message="handleMessage" id="myWebview"></web-view> -->
- <!-- <web-view src="http://192.168.0.145:4200" @message="handleMessage" id="myWebview"></web-view> -->
- <web-view src="http://120.192.74.74:7500" @message="handleMessage" id="myWebview"></web-view>
- <!-- <button @click="downloadFile">点击下载文件</button> -->
- </view>
- </template>
- <!-- -->
- <!-- <script src="../../js/uni-webview"></script> -->
- <script>
- // import {hmScanCode, ScanOptions, ScanResult} from '@/uni_modules/lime-scan';
- // const scanner = uni.requireNativePlugin('Ba-Scanner')
- const scanner = uni.requireNativePlugin('Ba-Scanner')
- export default {
- data() {
- return {
- result: '',
- }
- },
- onReady() {
- },
- onLaunch() {
- },
- onLoad: function() {
- },
- methods: {
- handleMessage(evt) {
- console.log('原始信息:' + evt)
- console.log('接收到的消息:' + JSON.stringify(evt));
- if (evt) {
- // let data={};
- let data = JSON.parse(evt.detail.data);
- console.log('json解析:' + JSON.stringify(data));
- if (data && data.content && data.title && data.content != '' && data.title != '') {
- uni.createPushMessage({
- content: data.content, // 推送内容
- title: data.title, // 推送标题
- sound: "system",
- success: function(res) {
- console.log('推送成功', res);
- },
- fail: function(err) {
- console.log('推送失败', err);
- }
- });
- } else if (data && data.type && data.type == 'file' && data.url && data.url != '' && data.fileName &&
- data.fileName != '' && data.token && data.token != '') {
- //判断是否为post请求
- let isPost = false;
- try {
- let urlType = data.urlType;
- let postRequest = data.postRequest;
- if (urlType == 'POST') {
- isPost = true;
- }
- } catch (e) {
- isPost = false;
- }
- let url = data.url;
- let fileName = data.fileName;
- let token = data.token;
- if (!isPost) {
- console.log("移动端文件下载通用方式")
- console.log('url:' + url);
- this.downloadFile(url, fileName, token);
- } else {
- let postRequest = data.postRequest;
- this.downloadPostFile(url, fileName, token, postRequest)
- }
- } else if (data && data.type && data.type == 'scanCode') {
- this.currentWebView = plus.webview.currentWebview();
- console.log('66666', this.currentWebView);
- // this.scancode();
- // this.scan();
- this.onscan();
- } else {
- return;
- }
- }
- },
- // downloadFile(url) {
- // uni.downloadFile({
- // url: url,
- // success: function(res) {
- // if (res.statusCode === 200) {
- // console.log('下载成功:' + JSON.stringify(res));
- // uni.saveFile({
- // tempFilePath: res.tempFilePath,
- // success: function(res) {
- // var savedFilePath = res.savedFilePath;
- // console.log("download:" + savedFilePath)
- // uni.openDocument({
- // filePath: savedFilePath
- // });
- // }
- // });
- // }
- // }
- // });
- // },
- // scancode
- scancode() {
- // 支付宝扫码——需付费(可免费试用3月)
- // var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module");
- // mpaasScanModule.mpaasScan({
- // // 扫码识别类型,参数可多选,qrCode、barCode,不设置,默认识别所有
- // 'scanType': ['qrCode', 'barCode'],
- // // 是否隐藏相册,默认false不隐藏
- // 'hideAlbum': false
- // },
- // (ret) => {
- // if (ret.resp_code == '1000') {
- // console.log('条码内容:' + ret.resp_result);
- // console.log('11', new Date());
- // uni.hideLoading();
- // let sendMsg;
- // if (ret.resp_result == null) {
- // // console.log('12');
- // sendMsg = '{}';
- // } else if (typeof ret.resp_result === 'object') {
- // // console.log('34');
- // sendMsg = ret.resp_result;
- // } else {
- // if (ret.resp_result.includes('http') || !ret.resp_result.includes("{")) {
- // sendMsg = '{}';
- // // console.log('56');
- // } else {
- // sendMsg = ret.resp_result;
- // // console.log('78');
- // }
- // }
- // console.log('sendMsg', sendMsg);
- // console.log('1212',plus.webview);
- // console.log('3232',plus.webview.all());
- // setTimeout(()=>{
- // plus.webview.getDisplayWebview()[0].evalJS(`window.postJS(${sendMsg})`);
- // },500)
- // }
- // if (ret.resp_code == '10') {
- // setTimeout(()=>{
- // plus.webview.currentWebview().evalJS(`window.postJS('fail')`);
- // },500)
- // }
- // if (ret.resp_code == '11') {
- // setTimeout(()=>{
- // plus.webview.currentWebview().evalJS(`window.postJS('{}')`);
- // },500)
- // }
- // // uni.showModal({
- // // title: "弹窗标题",
- // // // 返回值中,resp_code 表示返回结果值,10:用户取消,11:其他错误,1000:成功
- // // // 返回值中,resp_message 表示返回结果信息
- // // // 返回值中,resp_result 表示扫码结果,只有成功才会有返回
- // // content: JSON.stringify(ret),
- // // showCancel: false,
- // // confirmText: "确定"
- // // })
- // })
- // uni.showLoading({
- // title:"...",
- // mask:true
- // })
- console.log('10', new Date());
- // 官方推荐扫码api(识别率较低)
- // uni.scanCode({
- // onlyFromCamera: true,
- // scanType: ['qrCode'],
- // success: function(res) {
- // console.log('条码类型:' + res.scanType);
- // console.log('条码内容:' + res.result);
- // console.log('11', new Date());
- // uni.hideLoading();
- // let sendMsg;
- // if (res.result == null) {
- // // console.log('12');
- // sendMsg = '{}';
- // } else if (typeof res.result === 'object') {
- // // console.log('34');
- // sendMsg = res.result;
- // } else {
- // if (res.result.includes('http') || !res.result.includes("{")) {
- // sendMsg = '{}';
- // // console.log('56');
- // } else {
- // sendMsg = res.result;
- // // console.log('78');
- // }
- // }
- // console.log('sendMsg', sendMsg);
- // plus.webview.getDisplayWebview()[0].evalJS(`window.postJS(${sendMsg})`);
- // // try{
- // // JSON.parse(JSON.stringify(res.result));
- // // console.log('45');
- // // plus.webview.getDisplayWebview()[0].evalJS(`window.postJS(${res.result})`);
- // // }catch(e){
- // // //TODO handle the exception
- // // console.log('e',e);
- // // plus.webview.getDisplayWebview()[0].evalJS(`window.postJS('{}')`);
- // // }
- // },
- // fail: function(res) {
- // plus.webview.getDisplayWebview()[0].evalJS(`window.postJS('fail')`);
- // }
- // });
- // this.onScan();
- },
- //扫码
- onscan() { //默认界面(支持自定义界面)
- scanner.onScan({
- isContinuous: false,
- barcodeFormats: ["QR Code"],
- scanTimeSpace: 2000,
- isShowVibrate: true,
- isShowBeep: false,
- zoom: true,
- isShowToast: false,
- hintText:"",
- },
- (ret) => {
- console.log(ret)
- if (ret.code == "success") {
- let sendMsg;
- if (ret.result === null) {
- sendMsg = '{}'
- } else if (typeof ret.result === 'object') {
- sendMsg = ret.result;
- } else {
- if (ret.result.includes('http') || !ret.result.includes("{")) {
- sendMsg = '{}';
- // console.log('56');
- } else {
- sendMsg = ret.result;
- // console.log('78');
- }
- }
-
- setTimeout(()=>{
- plus.webview.getDisplayWebview()[0].evalJS(`window.postJS(${sendMsg})`);
- },500)
-
- } else {
- // setTimeout()
- plus.webview.getDisplayWebview()[0].evalJS(`window.postJS('fail')`);
- // console.log('8888',plus.webview.currentWebview());
-
- }
- });
- },
- downloadFile(_url, _name, _token) {
- uni.downloadFile({
- url: _url, //文件链接
- // header: {
- // "token": _token
- // },
- success: (res) => {
- if (res.statusCode === 200) {
- console.log("res:", res)
- uni.saveFile({
- tempFilePath: res.tempFilePath,
- success: function(res) {
- var savedFilePath = res.savedFilePath;
- let lastSlashIndex = savedFilePath.lastIndexOf("/");
- let name_index = _name.lastIndexOf('.');
- let fileName = _name.slice(0, name_index) + Date.now() + _name
- .slice(name_index, _name.length)
- var newFilePath = savedFilePath.slice(0, lastSlashIndex + 1) +
- fileName;
- console.log("download:" + savedFilePath)
- console.log('修改之后的文件路径:' + newFilePath)
- //修改名称
- plus.io.resolveLocalFileSystemURL(savedFilePath, entry => {
- entry.getParent(_oldFile => {
- entry.moveTo(_oldFile, '/' + fileName,
- newFilePath => {
- console.log('文件名称替换完成');
- // console.log('000',newFilePath.fullPath);
- })
- })
- })
- setTimeout(() => {
- uni.openDocument({
- filePath: newFilePath,
- success() {
- console.log('打开成功');
- },
- fail() {
- console.log('打开失败');
- }
- });
- }, 1000)
- }
- });
- }
- },
- fail: (err) => {
- uni.showToast({
- icon: 'none',
- mask: true,
- title: '失败请重新下载',
- });
- },
- })
- },
- downloadPostFile(_url, _name, _token, _data) {
- let name_index = _name.lastIndexOf('.');
- let fileName = "_doc/uniapp_save/" + _name.slice(0, name_index) + Date.now() + _name
- .slice(name_index, _name.length);
- console.log('文件路径:' + fileName)
- var dtask = plus.downloader.createDownload(_url, {
- filename: fileName, //利用保存路径,实现下载文件的重命名
- method: 'POST',
- data: _data
- }, function(d, status) {
- console.log("d====>", d)
- console.log("status====>", status)
- //d为下载的文件对象
- if (status == 200) {
- // var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
- plus.runtime.openFile(d.filename); //选择软件打开文件
- } else {
- //下载失败
- plus.downloader.clear(); //清除下载任务
- reject({
- data: d,
- status
- })
- }
- })
- dtask.setRequestHeader("token", _token)
- dtask.setRequestHeader("Content-Type", "application/json")
- dtask.start(); //执行下载
- },
- }
- }
- </script>
- <style>
- </style>
|