最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS判斷當(dāng)前是否平板安卓并是否支持cordova方法的示例代碼

 更新時(shí)間:2022年08月23日 10:13:02   作者:周家大小姐.  
這篇文章主要介紹了JS判斷當(dāng)前是否平板安卓并是否支持cordova方法,pc和安卓平板共用一套代碼,平板的代碼用了cordova做了一個(gè)殼子嵌套如果用了cordova就不支持elementUI中的上傳功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

需求:pc和安卓平板共用一套代碼,平板的代碼用了cordova做了一個(gè)殼子嵌套如果用了cordova就不支持elementUI中的上傳功能,所以要用判斷,現(xiàn)用戶在平板又會(huì)用瀏覽器打開(kāi)項(xiàng)目所以要做兩層判斷

app內(nèi)是用cordova中的 window.actionSheet方法調(diào)用上傳讀取相機(jī)和圖庫(kù)方法

上代碼

<el-upload
                      class="avatar-uploader repost-pic-upload"
                      ref="uploadImgRef"
                      action=""
                      :accept="fileType"
                      :disabled="isAndroid"
                      :show-file-list="false"
                      :on-preview="picPreview"
                      :http-request="
                        file => {
                          beforeUpload(file, index);
                          return false;
                        }
                      "
                      :before-remove="
                        (file, fileList) => {
                          handleRemove(file, fileList, index);
                          return false;
                        }
                      "
                    >
                      <div
                        v-if="uploadFlag"
                        class="progress-wrap"
                        @click.stop="handleCancelUpload"
                      >
                        <p class="progress-rate">{{ uploadPercent }}%</p>
                        <p class="progress-cancel">取消上傳</p>
                      </div>
                      <img
                        v-else-if="item.dstImageData"
                        :src="item.dstImageData"
                        class="avatar"
                      />
                      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                      <div
                        class="android-wrap"
                        v-if="isAndroid"
                        @click="selectPhotoSheet(index)"
                      ></div>
                    </el-upload>

computed計(jì)算屬性

  computed: {
    // 判斷是否安卓APP中打開(kāi)應(yīng)用還是瀏覽器
    isAndroid() {
      if (
        /(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent) &&
        typeof window.actionSheet == "function"
      ) {
        return true;
      } else {
        return false;
      }
    }
  },

安卓方法

  // 選擇圖片彈窗按鈕
    selectPhotoSheet(arrIndex) {
      let that = this;
      window.actionSheet(["拍照", "相冊(cè)"]).then(index => {
        that.cameraGetPicture(index, arrIndex);
      });
    },
    // 拍照或相冊(cè)選擇
    cameraGetPicture(data, arrIndex) {
      // data == 2 為相冊(cè)
      window
        .cameraGetPicture(data)
        .then(base64 => {
          console.log(base64);
          this.uploadImg(arrIndex, base64);
        })
        .then(err => {
          console.log(err);
        });
    },

PC方法

 // 上傳圖片
    beforeUpload(file, index) {
      this.uploadFlag = true;
      let picType = file.file.type;
      if (
        !(
          picType == "image/png" ||
          picType == "image/jpg" ||
          picType == "image/jpeg"
        )
      ) {
        this.$message.warning("只能JPG/PNG格式的照片");
        this.list[index].src = "";
        return false;
      }
      if (file.file.size > 2 * 1024 * 1024) {
        this.$message.warning("圖片大小不能超多2M");
        return false;
      }
      // let params = new FormData();
      // params.append("file", file.file);
      common.getBase64(file.file).then(base64 => {
        // this.list[index].dstImageData = base64;
        this.uploadImg(index, base64);
      });
 
      this.dialogVisible = true;
      return false;
    },
    // 上傳圖片
    uploadImg(index, base64) {
      let arr = base64.split(",");
      let params = {
        prefix: arr[0],
        dataString: arr[1]
      };
 
      let CancelToken = axios.CancelToken;
      let self = this;
      axios({
        url: this.imgUploadUrlBase,
        method: "post",
        data: params,
        headers: {
          "Content-Type": "application/json;charser=utf-8",
          Authorization: `Bearer${store.state.login.login.access_token}`
        },
        cancelToken: new CancelToken(function executor(c) {
          self.cancel = c;
        }),
        onUploadProgress: progressEvent => {
          this.uploadPercent = Math.round(
            (progressEvent.loaded / progressEvent.total) * 100
          );
        }
      })
        .then(({ data: { data } }) => {
          api
            .getRecognition({
              imgPath: data.filePath
            })
            .then(res => {
              this.list[index].dstImageData = data.filePath;
              this.list[index].nameplateTableJson = res;
              this.$message.success("上傳成功");
            });
        })
        .catch(() => {
          this.$message.error("上傳失敗");
        })
        .finally(() => {
          this.uploadFlag = false;
          this.uploadPercent = 0;
        });
    
    },

到此這篇關(guān)于JS判斷當(dāng)前是否平板安卓并是否支持cordova方法的文章就介紹到這了,更多相關(guān)js判斷當(dāng)前平板安卓?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Rx響應(yīng)式編程

    淺談Rx響應(yīng)式編程

    在學(xué)習(xí)Rx編程的過(guò)程中,理解Observable這個(gè)概念至關(guān)重要,常規(guī)學(xué)習(xí)過(guò)程中,通常需要進(jìn)行多次碰壁才能逐漸開(kāi)悟。這個(gè)有點(diǎn)像小時(shí)候?qū)W騎自行車,必須摔幾次才能掌握一樣。當(dāng)然如果有辦法能言傳,則可以少走一些彎路,盡快領(lǐng)悟Rx的精妙
    2021-06-06
  • JavaScript通過(guò)attachEvent和detachEvent方法處理帶參數(shù)的函數(shù)

    JavaScript通過(guò)attachEvent和detachEvent方法處理帶參數(shù)的函數(shù)

    通過(guò) attachEvent 和 detachEvent 方法處理帶參數(shù)的函數(shù)(示例代碼)
    2010-03-03
  • JavaScript 正則應(yīng)用詳解【模式、欲查、反向引用等】

    JavaScript 正則應(yīng)用詳解【模式、欲查、反向引用等】

    這篇文章主要介紹了JavaScript 正則應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript 正則表達(dá)式模式、欲查、反向引用等相關(guān)概念、原理與操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • JavaScript設(shè)計(jì)模式之外觀模式實(shí)例

    JavaScript設(shè)計(jì)模式之外觀模式實(shí)例

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之外觀模式實(shí)例,本文用一些代碼實(shí)例來(lái)講解JavaScript中的外觀模式,需要的朋友可以參考下
    2014-10-10
  • 在Html中使用Requirejs進(jìn)行模塊化開(kāi)發(fā)實(shí)例詳解

    在Html中使用Requirejs進(jìn)行模塊化開(kāi)發(fā)實(shí)例詳解

    在前端模塊化的時(shí)候,不僅僅是js需要進(jìn)行模塊化管理,html有時(shí)候也需要模塊化管理。這里就介紹下如何通過(guò)requirejs,實(shí)現(xiàn)html代碼的模塊化開(kāi)發(fā)
    2016-04-04
  • JavaScript實(shí)現(xiàn)異步圖像上傳功能

    JavaScript實(shí)現(xiàn)異步圖像上傳功能

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)異步圖像上傳功能,本文展示了一種使用代碼示例立即顯示圖像的方法(使用圖像的Base64編碼版本),同時(shí)將其上載到服務(wù)器,而無(wú)需等待操作完成。需要的朋友可以參考下
    2018-07-07
  • JavaScript學(xué)習(xí)筆記--常用的互動(dòng)方法

    JavaScript學(xué)習(xí)筆記--常用的互動(dòng)方法

    本文對(duì)JavaScript中常用的互動(dòng)方法進(jìn)行實(shí)例分析介紹,圖文并茂,有需要的朋友可以看下
    2016-12-12
  • js操作輸入框中選擇內(nèi)容兼容IE及其他主流瀏覽器

    js操作輸入框中選擇內(nèi)容兼容IE及其他主流瀏覽器

    這篇文章主要介紹了js如何操作輸入框中選擇的內(nèi)容兼容IE及其他主流瀏覽器,需要的朋友可以參考下
    2014-04-04
  • Django 中的templates使用示例詳解

    Django 中的templates使用示例詳解

    Django模板系統(tǒng)提供了一套豐富的工具集,能夠幫助開(kāi)發(fā)者將動(dòng)態(tài)數(shù)據(jù)有效地渲染到HTML頁(yè)面中,它通過(guò)特殊的語(yǔ)法支持變量插入、邏輯標(biāo)簽和過(guò)濾器的使用,本文給大家介紹Django 中的templates使用,感興趣的朋友一起看看吧
    2024-10-10
  • JavaScript實(shí)現(xiàn)手寫(xiě)promise的示例代碼

    JavaScript實(shí)現(xiàn)手寫(xiě)promise的示例代碼

    promise?作為前端開(kāi)發(fā)中常用的函數(shù),解決了?js?處理異步時(shí)回調(diào)地獄的問(wèn)題,大家應(yīng)該也不陌生了,今天來(lái)學(xué)習(xí)一下?promise?的實(shí)現(xiàn)過(guò)程吧
    2023-04-04

最新評(píng)論

兰坪| 紫金县| 银川市| 柏乡县| 磐石市| 徐水县| 商水县| 萨嘎县| 安福县| 宜昌市| 尉犁县| 西贡区| 旅游| 太仓市| 闸北区| 天门市| 裕民县| 扬州市| 南溪县| 德格县| 武夷山市| 自贡市| 峨眉山市| 个旧市| 湘潭县| 宿松县| 民和| 榕江县| 闽清县| 泾源县| 翁源县| 松桃| 当雄县| 镇江市| 连州市| 饶阳县| 从江县| 吉林市| 庆云县| 弋阳县| 吴旗县|