当前位置:Gxlcms > html代码 > HTML5调用移动浏览器相机问题

HTML5调用移动浏览器相机问题

时间:2021-07-01 10:21:17 帮助过:44人阅读

因为浏览器和微信浏览器区别,导致直接使用capture=”camera”,浏览器会调用相机。解决方案,就是在组件加载时候,判断一下内核

代码如下

  1. <template>
  2. <p id="info-container">
  3. <ul class="nav-wrapper">
  4. <li class="head-item">
  5. <p class="item-wrapper">
  6. <p class="left-item">头像</p>
  7. <p class="right-item">
  8. <img :src="login.avatar_url?login.avatar_url: ''"
  9. class="head"
  10. :onerror="errImage"
  11. >
  12. <img class="point" src="../../assets/images/mine/point.png">
  13. </p>
  14. </p>
  15. <!--
  16. 这是需要样式控制input,让其定位到父集元素顶层,透明度为0
  17. -->
  18. <input type="file"
  19. accept="image/*"
  20. ref="uploadFile"
  21. @change="changeFileHandler"
  22. capture="camera"
  23. v-if="iswx"
  24. />
  25. <input type="file"
  26. accept="image/*"
  27. ref="uploadFile"
  28. @change="changeFileHandler"
  29. v-if="!iswx"
  30. />
  31. </li>
  32. </ul>
  33. </p></template><script>import {
  34. USER_DEFAULT_BASE64,
  35. HEAD_IMAGE_SIZE_TO_BIG
  36. } from '../../utils/Constants'import { mapGetters, mapActions } from 'vuex'export default {
  37. name: 'info-container',
  38. computed: {
  39. ...mapGetters([ 'getAuthLogin'
  40. ]),
  41. login () { return this.$store.getters.getAuthLogin
  42. }
  43. },
  44. created () { const agent = navigator.userAgent.toLowerCase() this.iswx = agent.indexOf('qqbrowser') >= 0
  45. },
  46. methods: {
  47. ...mapActions([ 'authUpdateAvatarUrl'
  48. ]),
  49. showTextHandler (text = '') { this.$vux.toast.text(text)
  50. },
  51. changeFileHandler (e) { const files = e.target.files const uploadFile = this.$refs.uploadFile const localFile = files[0] const fileSize = localFile.size / 1024
  52. const fileName = localFile.name if (fileSize > 1024 * 3) { this.showTextHandler(HEAD_IMAGE_SIZE_TO_BIG)
  53. } else { // 表单文件上传
  54. this.authUpdateAvatarUrl({fileName, localFile})
  55. } // 延迟一段事件清除内容
  56. setTimeout(() => { uploadFile.value = '' }, 200)
  57. }
  58. },
  59. data () { return {
  60. iswx: false,
  61. errImage: USER_DEFAULT_BASE64
  62. }
  63. }
  64. }</script><style scoped lang="less">
  65. //TODO 样式</style>

相关推荐:

以上就是HTML5调用移动浏览器相机问题的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行