|
@@ -158,6 +158,34 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ judgeBrand(sUserAgent) {
|
|
|
+ var isIphone = sUserAgent.match(/iphone/i) == "iphone";
|
|
|
+ var isHuawei = sUserAgent.match(/huawei/i) == "huawei";
|
|
|
+ var isHonor = sUserAgent.match(/honor/i) == "honor";
|
|
|
+ var isOppo = sUserAgent.match(/oppo/i) == "oppo";
|
|
|
+ var isOppoR15 = sUserAgent.match(/pacm00/i) == "pacm00";
|
|
|
+ var isVivo = sUserAgent.match(/vivo/i) == "vivo";
|
|
|
+ var isXiaomi = sUserAgent.match(/mi\s/i) == "mi ";
|
|
|
+ var isXiaomi2s = sUserAgent.match(/mix\s/i) == "mix ";
|
|
|
+ var isRedmi = sUserAgent.match(/redmi/i) == "redmi";
|
|
|
+ var isSamsung = sUserAgent.match(/sm-/i) == "sm-";
|
|
|
+
|
|
|
+ if (isIphone) {
|
|
|
+ return 'iphone';
|
|
|
+ } else if (isHuawei || isHonor) {
|
|
|
+ return 'huawei';
|
|
|
+ } else if (isOppo || isOppoR15) {
|
|
|
+ return 'oppo';
|
|
|
+ } else if (isVivo) {
|
|
|
+ return 'vivo';
|
|
|
+ } else if (isXiaomi || isRedmi || isXiaomi2s) {
|
|
|
+ return 'xiaomi';
|
|
|
+ } else if (isSamsung) {
|
|
|
+ return 'samsung';
|
|
|
+ } else {
|
|
|
+ return 'default';
|
|
|
+ }
|
|
|
+ },
|
|
|
getImg () {
|
|
|
this.$refs.fileInput.click()
|
|
|
},
|
|
@@ -214,31 +242,34 @@ export default {
|
|
|
canvas.width = width = drawWidth
|
|
|
canvas.height = height = drawHeight
|
|
|
let context = canvas.getContext('2d')
|
|
|
+ let brand = self.judgeBrand(navigator.userAgent.toLowerCase());
|
|
|
// 判断图片方向,重置canvas大小,确定旋转角度,iphone默认的是home键在右方的横屏拍摄方式
|
|
|
- switch (orientation) {
|
|
|
- // iphone横屏拍摄,此时home键在左侧
|
|
|
- case 3:
|
|
|
- degree = 180
|
|
|
- drawWidth = -width
|
|
|
- drawHeight = -height
|
|
|
- break
|
|
|
- // iphone竖屏拍摄,此时home键在下方(正常拿手机的方向)
|
|
|
- case 6:
|
|
|
- canvas.width = height
|
|
|
- canvas.height = width
|
|
|
- degree = 90
|
|
|
- drawWidth = width
|
|
|
- drawHeight = -height
|
|
|
- break
|
|
|
- // iphone竖屏拍摄,此时home键在上方
|
|
|
- case 8:
|
|
|
- canvas.width = height
|
|
|
- canvas.height = width
|
|
|
- degree = 270
|
|
|
- drawWidth = -width
|
|
|
- drawHeight = height
|
|
|
- break
|
|
|
- }
|
|
|
+ if((brand=='xiaomi'||brand=='samsung')&&orientation){
|
|
|
+ switch (orientation) {
|
|
|
+ // iphone横屏拍摄,此时home键在左侧
|
|
|
+ case 3:
|
|
|
+ degree = 180
|
|
|
+ drawWidth = -width
|
|
|
+ drawHeight = -height
|
|
|
+ break
|
|
|
+ // iphone竖屏拍摄,此时home键在下方(正常拿手机的方向)
|
|
|
+ case 6:
|
|
|
+ canvas.width = height
|
|
|
+ canvas.height = width
|
|
|
+ degree = 90
|
|
|
+ drawWidth = width
|
|
|
+ drawHeight = -height
|
|
|
+ break
|
|
|
+ // iphone竖屏拍摄,此时home键在上方
|
|
|
+ case 8:
|
|
|
+ canvas.width = height
|
|
|
+ canvas.height = width
|
|
|
+ degree = 270
|
|
|
+ drawWidth = -width
|
|
|
+ drawHeight = height
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
context.rotate(degree * Math.PI / 180)
|
|
|
context.drawImage(this, 0, 0, drawWidth, drawHeight)
|