ios 微信分享显示 config:fail,安卓是 config:ok,开发者工具也是 config:ok,应该是 ios 系统原因,有微信分享开发经验的人吗,有没有遇到过这个问题,晚上尝试了很多方法都不行。
尝试了下面的方法: 1、url 为自动获取(微信官方 demo 要求) 2、link 的 url 使用 encodeURIComponent()对 URI 进行编码 3、img 图片大小小于 32kb 4、通过 location.protocol,location.host 来拼接 url
都是没办法,特此请教各位有经验的人。
我已经把很多东西写死了,都不行。(写死的那些都是在有效期内测试)
<?php
// 获取微信 access_token
$access_token = "填写 access_token";
// 获取 jsapi_ticket
$jsapiTicket = "填写 ticket";
// 默认生成 16 位随机数
$md5str = MD5(time());
$str = substr($str, 0,16);
// 获取要排序的 signature
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$timestamp = time();
$nonceStr = $str;
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string1 = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
$signature = sha1($string1);
//URL 转码
// $shareurl = encodeURIComponent($url);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>微信自定义分享</title>
</head>
<body>
</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
wx.config({
debug: true,
appId: 'wx92538fd0586e8250',
timestamp: <?php echo $timestamp;?>,
nonceStr: '<?php echo $str;?>',
signature: '<?php echo $signature;?>',
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'onMenuShareTimeline',
'chooseImage'
]
});
wx.ready(function () {
wx.onMenuShareTimeline({
title: 'JSSDK 微信分享测试',
link: location.protocol+'//'+location.host+'/'+'share/',
imgUrl: location.protocol+'//'+location.host+'/'+'share/'+'1520566472.png',
success: function (res) {
alert('已分享');
},
cancel: function (res) {
alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
})
});
</script>
</html>
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.