微信呼び出しカメラ画像アップロード
var localIds = 0;
// config
wx.config({
beta: true,// , wx.invoke jsapi
debug: false, // true , api alert , , pc , log , pc 。
appId: '<?=$config['appId'];?>', // , corpID
timestamp: <?=$config['timestamp'];?>, // ,
nonceStr: '<?=$config['nonceStr'];?>', // ,
signature: '<?=$config['signature'];?>',// , , 1
//jsApiList: [<?=json_encode($config['jsApiList']);?>]
jsApiList: ['uploadImage','getLocalImgData','scanQRCode','chooseImage']// , JS , JS 2
});
wx.ready(function () {
$("#start_qrcode_id").click(function () {
wx.chooseImage({
count: 1, // 9
sizeType: ['original', 'compressed'], // ,
sourceType: ['camera'], // , 'album', 'camera'
defaultCameraMode: "batch", // , normal batch ,normal ,batch , normal 。( : )
isSaveToAlbum: 0, // ,0 ,1 , 1
success: function (res) {
var images = [];
var ioslocId = []; //images ioslocaId ,
var rows = '';
localIds = res.localIds; // ID ,
images.push(localIds);
if (window.__wxjs_is_wkwebview) { // ios wkwebview
for (var i = 0; i < localIds.length; i++) {
wx.getLocalImgData({ // getLocalImgData
localId: localIds[i],
// localID
success: function(res) {
var localData = res.localData; // localData base64 , img
localData = localData.replace('jgp', 'jpeg'); //iOS , image/jgp,
ioslocId.push(localData);
rows = "";
for (var j = 0; j < ioslocId.length; j++) {
rows += `<img src="` + ioslocId[j] + `" width="100%" height="30%"/>`;
}
$("#img").html(rows);
},
fail: function(res) {
alert("res");
}
});
}
} else {
// wkwebview
$.each(images, function(index, el) {
rows += `<img src="` + el + `" width="100%" height="30%"/>`;
});
$("#img").html(rows);
}
//
for (var i = 0; i < localIds.length; i++) {
wx.uploadImage({
localId: localIds[i], // ID, chooseImage
isShowProgressTips: 1, // 1,
success: function (res) {
// ,
var serverId = res.serverId; // ID, media_id
$('#media_id').val(serverId);
}
});
}
},
error: function (res) {
// alert(res);
if (res.errMsg.indexOf('function_not_exist') > 0) {
$.dialog.tips(' ', '1' , 'error.gif');
return false;
}
}
});
});
});
//
$('#submit').click(function () {
var media_id = $('#media_id').val();
if (!media_id) {
$.dialog.tips(' ', '1' , 'error.gif');
return false;
}
var url = '<?=Yii::$app->urlManager->createUrl('/Wxmsg/wximg/doadd');?>';
$.ajax({
url : url,
type : "POST",
dataType : "json",
data : {'media_id' : media_id},
success : function (res) {
if (res.status == 1) {
$.dialog.tips(res.info, '1' , 'success.gif');
if (isAndroid()) {
document.addEventListener('WeixinJSBridgeReady', function(){ WeixinJSBridge.call('closeWindow'); }, false)
} else if(isIos) {
WeixinJSBridge.call('closeWindow');
}
} else {
$.dialog.tips(res.info, '1' , 'error.gif');
}
}
});
return false;
});
//
function isAndroid() {
var u = navigator.userAgent;
if (u.indexOf("Android") > -1 || u.indexOf("Linux") > -1) {
if (window.ShowFitness !== undefined) return true;
}
return false;
}
// ios
function isIos() {
var u = navigator.userAgent;
if (u.indexOf("iPhone") > -1 || u.indexOf("iOS") > -1) {
return true;
}
return false;
}