配置并学习微信JS-SDK(2)—图片接口
测试地址:http://www.qq210.com/shoutu/android
- 检查图像接口
- 选择本地或拍照的图片
- 上传选择的图片
- 预览上传的图片
//1.检查图像接口
document.querySelector('#chooseImage').onclick = function() {
log_msg('检查api');
unvaild_api = [];
wx.checkJsApi({
jsApiList:[
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
],
success:function(res){
log_msg('返回检查api的结果'); log_msg('1.判断检查api的结果');
$.each(res.checkResult, function(k, v) { if (!v) {
unvaild_api.push(k);
return false;
}
}); if (unvaild_api.length > 0) {
log_msg('存在无效api'+unvaild_api.join(', '));
log_msg('存在无效api的结果'+unvaild_api.join(', '));
return false;
}
log_msg('无无效api'); var images = {
localIds: [],
serverId: []
}; //2.选择本地或拍照的图片
wx.chooseImage({
success: function (res) {
log_msg("返回选定照片的本地ID列表或拍照图片ID"+JSON.stringify(res));
images.localIds = res.localIds;
log_msg('已选择 ' + images.localIds.length + ' 张图片');
log_msg('图片地址: ' + images.localIds.join(', ')); //3.上传选择的图片(递归)
var i = 0, length = images.localIds.length;
var imgs_html = [];
var upload = function(){
log_msg("上传图片第"+i+'图片');
wx.uploadImage({
localId:images.localIds[i],
success: function(res) {
log_msg('记录res.serverId'+res.serverId);
images.serverId.push(res.serverId);
imgs_html.push('<img src="'+images.localIds[i]+'"/>');
log_msg('已上传'+images.localIds[i]+i+'/'+length);
//如果还有照片,继续上传
i++;
if (i < length) {
upload();
}
else {
//4.预览上传的图片
$("#img_wrap").html(imgs_html.join(''));
log_msg("上传成功");
}
}
});
}; log_msg("开始上传图片");
upload();
}
});
}
});
} - 下载上传的图片(用上传下载多媒体文件接口下载原文件http://www.qq210.com/shoutu/android);=======折腾很久 发现订阅号没有上传下载多媒体文件接口,晕喔 也就是这能用它下载图片的接口了
//4.显示下载后的相片
var img_html = '';
i = 0;//重置i
var download = function(){
wx.downloadImage({
serverId:images.serverIds[i],
success:function(res){
log_msg('下载第'+i+'张图片的结果:'+JSON.stringify(res));
img_html += '<img src="'+res.localId+'" />'; //如果还有下载的图片,继续下载
i++;
if (i < length) {
download();
}
else{
$("#img_wrap").html(img_html);
} }
});
}
log_msg("开始下载图片");
download();- 现在问题又来了,预览上传时的localId和下载后的localId区别在哪里?而这个下载后的localId的图片存储在哪里?有谁知道的请留言下?
- =>明白了:我换了手机再打开公众号,发现不是我下载的图片的手机是看不到图片的,换句话说就是,下载后的图片存在了点击下载的那部手机上,擦,微信服务器只保留3天照片,订阅号又下载多媒体文件没权限,之后也只能强制手机下载到本地保存了!哎!
demo地址:http://www.qq210.com/shoutu/android
其他:
- 为了记录执行过程和调试代码,提交日志到服务器并记录日志
- js部分
var log_msg = function(msg){
$.post('<?=site_url("log/index")?>', {msg:msg});
} - php部分
class Log extends SAE_Controller { public function index()
{
$msg = $this->input->post('msg');
log_message('error', $msg);
echo $msg;
}
}
- js部分
配置并学习微信JS-SDK(2)—图片接口的更多相关文章
- 微信 JS SDK 的 chooseImage 接口在部分安卓机上容易造成页面刷新
该问题的症状是,当调用 chooseImage 接口并选择拍照,选择照片确定之后,然后从相机返回后,当前web页面就刷新了一次,导致拍照的图片无法选择上传:但是如果直接从相册中选择图片,则不会出现这个 ...
- 微信JS SDK接入的几点注意事项
微信JS SDK接入,主要可以先参考官网说明文档,总结起来有几个步骤: 1.绑定域名:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.备注:登录后可在“开发者中心”查看对 ...
- 微信js sdk上传多张图片
微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="111111111111 ...
- 实战微信JS SDK开发:贺卡制作与播放(1)
前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细 ...
- 微信JS SDK配置授权,实现分享接口
微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...
- 微信js SDK接口
微信JS-SDK说明文档 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 一.微信登录功能 在进行微信OAut ...
- 微信JS SDK Demo 官方案例[转]
摘要: 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用 ...
- 微信JS SDK Demo
微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置原文:http://www.cnblogs.com/txw1958/p/ ...
- 微信JS SDK Demo 官方案例
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享 ...
- 微信开发(2):微信js sdk分享朋友圈,朋友,获取config接口注入权限验证(转)
进行微信开发已经一阵子了,从最初的什么也不懂,到微信授权登录,分享,更改底部菜单,素材管理,等. 今天记录一下微信jssdk 的分享给朋友的功能,获取config接口注入. 官方文档走一下简单说:四步 ...
随机推荐
- windows下redis的安装配置和php扩展使用phpredis
1. 首先安装先下载redis数据库 下载地址: http://code.google.com/p/servicestack/wiki/RedisWindowsDownload 目前是2.02 ...
- 基于iOS,Android的服务器证书失效检测
1.前言 在目前的iOS,Android手机上,当手机应用进行SSL通信时,手机端默认是不会进行服务器证书是否失效的监测. 在iOS上,系统是会定期获取所访问服务器的证书信息然后出存在本地. 在And ...
- Java 抽象类与接口总结
一.为什么要使用抽象类?有什么好处? 抽象类是通用接口.不同的子类可以用不同的方法表示此接口.通用接口建立起一种基本形式,以此表示所有子类的共同部分. 必须覆写父类abstract抽象的方法 含有抽 ...
- sql server 分组统计数据
说明:group by是sql中对数据表中的数据进行分组的,在select列表中出现的字段必须全部出现在group by 字段中,出现在聚合函数中的字段在group by中可有可无,没有出现在sele ...
- WCF客户端和服务器时间不一致,导致通道建立失败的问题)
本文转载:http://www.cnblogs.com/bcbr/articles/2288374.html 最近,经常有客户反应,前天还用的好好的系统,今天就不能用了. 考虑到系统近来没有做过改动和 ...
- foreach -begin -process -end
gc d:\vm.txt|foreach -begin {write-host "It's beginning."} -process {$_ +"aa"} ...
- 【HDU 2014 Multi-University Training Contest 1 1002】/【HDU 4862】Jump
多校训练就这么华丽丽的到了 ,于是乎各种华丽丽的被虐也開始了. 这是多校的1002; 最小费用最大流. 题目大意: 有n*m个方格,每一个方格都一个的十进制一位的数.你能够操作K次. 对于每一次操作, ...
- [Webpack 2] Chunking common modules from multiple apps with the Webpack CommonsChunkPlugin
If you have a multi-page application (as opposed to a single page app), you’re likely sharing module ...
- GCC内嵌汇编
http://blog.csdn.net/mydo/article/details/8279924
- 阿里云SQL Server 2008 客户端导入数据库教程
一.适用场景 源端数据库是SQL Server 2005 及以上.(SQL Server 2000未测试.) 数据文件总大小在10G以内. 可以在低峰期停应用. 二.导出步骤 1.软件准备 ...
