ios兼容
border-radius在ios的兼容:-webkit-appearance:none; 加上这个属性,可以保证安卓和ios的圆角一致
上传图片,这段没有代码没有管图片拍摄的方位,
var _this = this;
var target = e.target;
var FileReadered = new FileReader();
var image = new Image();
let img1 = e.target.files[0];
console.log(img1,'img111')
var reg = new RegExp(/jpg|jpeg|png|gif/);
//验证是否是一张图片
if(!reg.test(img1.type.substr((img1.type.lastIndexOf('/')+1)))){
return;
}
//读取图片数据
FileReadered.readAsDataURL(img1);
//读取后做的操作
FileReadered.onload = function(e){
image.src = e.target.result;
image.onload = function(){
let imgWidth = image.width;
let imgHeight = image.height;
let quality = 0.3;
let canvas = document.createElement("canvas");
let ctx = canvas.getContext("2d");
//压缩开始
if(imgWidth >= imgHeight && imgWidth > 750){
imgWidth = 750;
imgHeight = Math.ceil(750 * this.height / this.width);
}else if(imgWidth < imgHeight && imgHeight > 1334){
imgWidth = Math.ceil(1334 * this.width / this.height);
imgHeight = 1334;
}
canvas.width = imgWidth;
canvas.height = imgHeight;
//画画开始
ctx.drawImage(image, 0, 0, imgWidth, imgHeight);
//把canvas的图片转为url
let cdata = canvas.toDataURL("image/jpeg",quality);
img1= _this.dataURLtoFile(cdata,img1.name);
console.log(img1,'img111')
//上传开始
target.value = '';
if (!img1.size) {return}
if ( img1.size > 4194304) {
//图片大于4M
this.$vux.toast.text('上传头像小于4M');
return;
}
let form = new FormData();
form.append('file',img1);
let config = {
headers:{'Content-Type':'multipart/form-data'}
};
_this.$http.post('/file/upload?token='+localStorage.getItem('token'),form,config).then(res=>{
let arr = 'userfiles'+res.data.split('userfiles')[1];
console.log(arr,'arr')
_this.customer.customerPortrait = arr;
_this.$http.post('/customer/update',_this.customer).then(ress=>{
if (ress.data.code===0) {
_this.imgAddress = res.data;
console.log(_this.imgAddress,'this.imgAddress')
}
})
})
}
};
import EXIF from 'exif-js' 这个文件是用来做手机拍摄方位的;
EXIF.getData(file, function () {
Orientation = EXIF.getTag(this, 'Orientation'); //用变量来接收拍摄方位
});
if (Orientation && Orientation != 1) {
switch (Orientation) {
case 6:
canvas.width = imgHeight;
canvas.height = imgWidth;
ctx.rotate(Math.PI / 2);
ctx.drawImage(image, 0, -imgHeight, imgWidth, imgHeight);
break;
case 3:
ctx.rotate(Math.PI);
ctx.drawImage(image, -imgWidth, -imgHeight, imgWidth, imgHeight);
break;
case 8:
canvas.width = imgHeight;
canvas.height = imgWidth;
ctx.rotate(3 * Math.PI / 2);
ctx.drawImage(image, -imgWidth, 0, imgWidth, imgHeight);
break;
}
} else {
ctx.drawImage(image, 0, 0, imgWidth, imgHeight);
}
最后这段判断是判断图片方位,暂时没有仔细去看;
ios兼容的更多相关文章
- h5微信浏览器复制粘贴--ios兼容问题的解决方法(clipboard.js插件)
前段时间在做微信h5的时候,遇到了ios兼容,使用clipboard.js插件完美解决 下载地址:下载地址: https://github.com/zenorocha/clipboard.js cnd ...
- 小程序 ----踩坑 ---安卓iOS兼容等
关于小程序一些小功能的代码都在这个GitHub上,感兴趣的可以去看看,https://github.com/huihuijiang/miniProgram目前有:列表左滑删除,拖拽浮标 一.小程序坑1 ...
- Clipboard 自动复制功能,ios复制失败,换方案 user-select: text ;长按复制 (ios 兼容,长按复制)
Clipboard 自动复制功能,嵌套app内跳转的页面,ios 自动复制失败(该ios机子,微信,浏览器打开复制没有问题) 暂时换方案 user-select: text ;长按复制 (ios ...
- ios 兼容IPV4和IPV6网络通信
前言: 苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络. 准备工作: 搭建IPV6测试环境:http://blog.csdn.net/potato512/article ...
- 移动端网页 -- 安卓与IOS兼容
1.在a链接长按时,ios系统会识别并复制a链接中的href值,而安卓不会,只会选择复制文字 关于长按复制其他区域内容:pc端可以实现,在移动端目前还没有找到解决方案,很多都是基于flash的 2.i ...
- 安卓和IOS兼容问题
点击穿透 click延迟 scroll元素临界的bug android screen.w/h 不准 rem不准 scroll时动画失效 animate回调 最小字号限制 不同机型全屏自适应 andro ...
- ios兼容 iphoneX ios10 ios11
假设你有一个固定位置的标题栏,你的iOS10的CSS可能是这样写的: header { position: fixed; top:; left:; right:; height: 44px; padd ...
- 记H5单页遇到的几个ios兼容问题
最近写一个H5活动页,安卓里的表现很不错,写下来很少出现兼容性问题,ios就不一样了,好多问题都出现在ios上(手动狗头)
- 混合开发中ios兼容问题
1. z-index无效,设置层级,发现再ios中无效,后来发现是设置了 -webkit-overflow-scrolling:touch 设置这个属性之后.层级设置失效 2.@keyup事件的问题, ...
随机推荐
- Markdown笔记(git提交带有emoji的commit描述)
用法:> git commit -m ' :tada: initial ' emoji来源:> ![gitmoji](https://gitmoji.carloscuesta.me/sta ...
- ESlint 格式化代码 备忘
vscode 代码格式化配置 vscode 菜单 文件->首选项->设置 --->进入扩展查找到ESlint,点击任一选项中的[在setting.json中配置],复制以下代码 { ...
- java 爬虫:开源java爬虫 swing工具 Imgraber
1实现点: 1.返回给定URL网页内,所有图像url list 2.返回给定URL网页内,自动生成图像文件路径.txt 文件 3.返回给定URL网页内,下载txt文件指定的图片url,并将所有图像保存 ...
- Python爬虫之BeautifulSoap的用法
1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...
- Python基本数据类型及实例详解
Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...
- ReactNative真机运行
前提条件:USB 调试 你需要开启 USB 调试才能在你的设备上安装你的 APP. 首先,确定你已经打开设备的 USB 调试开关 确保你的设备已经成功连接.可以输入adb devices来查看: $ ...
- 【问题】man命令打开的手册上链接怎么展开?
参考:How to follow links in linux man pages? 前言 在使用man查看命令帮助的时候,有些文字下面会有下划线.给人的感觉是一个链接,但是又打不开.那么到底是不是链 ...
- 【OF框架】在Visual Studio中发布Docker镜像,推送镜像到Azure容器注册表
准备 拥有Azure账号,已经创建 Azure容器注册表,获得注册表地址.账号.密码 本地已经在Visual Studio登录Azure账号. 本地已经拥有Docker环境 注意:首次发布Docker ...
- 模板引擎-vue中的模板如何被解析,指令如何处理
模板是什么 <div id='app'> <div> <input v-model="title"/> <button v-on:clic ...
- 《AlwaysRun!团队》第四次作业:项目需求调研与分析
项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daiz ...