明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

HTML5調(diào)用移動瀏覽器相機(jī)問題

[摘要]因?yàn)闉g覽器和微信瀏覽器區(qū)別,導(dǎo)致直接使用capture=”camera”,瀏覽器會調(diào)用相機(jī)。解決方案,就是在組件加載時候,判斷一下內(nèi)核代碼如下<template><p id="info-container"><ul class="nav-...

因?yàn)闉g覽器和微信瀏覽器區(qū)別,導(dǎo)致直接使用capture=”camera”,瀏覽器會調(diào)用相機(jī)。解決方案,就是在組件加載時候,判斷一下內(nèi)核

代碼如下

<template>
  <p id="info-container">
    <ul class="nav-wrapper">
      <li class="head-item">
        <p class="item-wrapper">
          <p class="left-item">頭像</p>
          <p class="right-item">
            <img :src="login.avatar_url?login.avatar_url: ''"
                 class="head"
                 :onerror="errImage"
            >
            <img class="point" src="../../assets/images/mine/point.png">
          </p>
        </p>
        <!-- 
        這是需要樣式控制input,讓其定位到父集元素頂層,透明度為0
        -->
        <input type="file"
               accept="image/*"
               ref="uploadFile"
               @change="changeFileHandler"
               capture="camera"
               v-if="iswx"
        />
        <input type="file"
               accept="image/*"
               ref="uploadFile"
               @change="changeFileHandler"
               v-if="!iswx"
        />
      </li>
    </ul>
  </p></template><script>import {
  USER_DEFAULT_BASE64,
  HEAD_IMAGE_SIZE_TO_BIG
} from '../../utils/Constants'import { mapGetters, mapActions } from 'vuex'export default {
  name: 'info-container',
  computed: {
    ...mapGetters([      'getAuthLogin'
    ]),
    login () {      return this.$store.getters.getAuthLogin
    }
  },
  created () {    const agent = navigator.userAgent.toLowerCase()    this.iswx = agent.indexOf('qqbrowser') >= 0
  },
  methods: {
    ...mapActions([      'authUpdateAvatarUrl'
    ]),
    showTextHandler (text = '') {      this.$vux.toast.text(text)
    },
    changeFileHandler (e) {      const files = e.target.files      const uploadFile = this.$refs.uploadFile      const localFile = files[0]      const fileSize = localFile.size / 1024
      const fileName = localFile.name      if (fileSize > 1024 * 3) {        this.showTextHandler(HEAD_IMAGE_SIZE_TO_BIG)
      } else {        // 表單文件上傳
        this.authUpdateAvatarUrl({fileName, localFile})
      }      // 延遲一段事件清除內(nèi)容
      setTimeout(() => { uploadFile.value = '' }, 200)
    }
  },
  data () {   return {
      iswx: false,
      errImage: USER_DEFAULT_BASE64
    }
  }
}</script><style scoped lang="less">
    //TODO 樣式</style>

相關(guān)推薦:

關(guān)于HTML5 調(diào)用用戶的 照相機(jī)、相冊 初步整理

H5移動端調(diào)用相機(jī)/相冊

H5調(diào)用手機(jī)的攝像頭拍照上傳以及手機(jī)相冊選取照片

以上就是HTML5調(diào)用移動瀏覽器相機(jī)問題的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。