第三方分享微信分享、朋友圈分享之iOS开发/Android开发

更新 -20190120: jweixin-1.4.0.js 存在ios分享失败,安卓ok的情况,

第一步:先将jssdk切回1.2.0版本,使用1.2.0版本里面的方法分享方法,并将1.4.0里的方法注释掉;目前1.2.0里的方法未被废除,都可以成功分享;(你可以理解为降级版本,其实到这步并没有使用1.4.0版本

第二步:(注释1.2.0版本引入文件及方法切换为1.4.0版本及方法)如果切版本分享ios未成功,尝试更换后台url 为公众号js安全域名【只有域名不附带参数的域名】(此方法肯定会报错,无法正常分享,在手机上触发一下错误),之后切换为正常的url ,iphone上就可以分享了

第三步:(兼容1.4.0版本)上面俩步做完后释放1.2.0版本的引入及方法;(此时页面里将有1.2.0和1.4.0版本的jssdk文件及两个版本所包含的分享方法);

注意点:确保你分享的链接是正确的,链接中有多余的参数和字符都会造成异常


针对1.2.0版本jssdk,尽快弃用1.0.0版本
其实Android和iOS是一样的,关键是要按微信的标准执行,泪的教训。。。。

##答主分享几个开发时的注意点:(JS-SDK)
1.对于分享图标不显示问题:最好在html中引入图片文件(不需要显示的可以选择隐藏),之后按照微信js-sdk进行配置,配置时要注意图片域名要与网站域名一致,否则无法显示。
2.对于分享文字不显示问题:分享链接(link)和分享描述(desc)采用动态传参,所以说分享描述不显示多半是因为没有取到参数。

关注微信开发者手册-JS-SDK最下面的常见问题

以下代码是我项目中的部分,紧紧是把重要的截取出来了(spa)

动态读取url

function _touchNotice(notice) {
			var url = '';
			if (notice.url.indexOf("http://", 0) == -1) {
				url = "http://" + notice.url;
			} else {
				url = notice.url;
			}
			$window.location.href = url;
		}
function _initConfig(wechat,url){

               .......
                
            

wx.config配置
-----------

              
                wx.config({
                    debug: GLOBAL_CONFIG.DEBUG, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                    appId: wechat.app_id, // 必填,公众号的唯一标识
                    timestamp: wechat.timestamp, // 必填,生成签名的时间戳
                    nonceStr: wechat.nonceStr, // 必填,生成签名的随机串
                    signature: wechat.signature,// 必填,签名,见附录1
                    jsApiList: ['chooseWXPay',
                        'onMenuShareAppMessage',
                        'onMenuShareTimeline',
                        'onMenuShareAppMessage',
                        'onMenuShareQQ'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
                });
                
                

将参数封装到对象中,以便调用,这个很重要
------------------------------------------------------------------------

                var shared_link = url;
                var title=$scope.title;
                var desc=$scope.desc;

                wx.ready( function() {
                    wx.onMenuShareTimeline({
                        title: title, // 分享标题
                        desc:desc,
                        link:shared_link, // 分享链接
			type:'link',
                        imgUrl: '分享图标的url,以http或https开头', // 分享图标
                        success: function () {
                            // 用户确认分享后执行的回调函数
                        },
                        cancel: function () {
                            // 用户取消分享后执行的回调函数
                        }
                    });

                    wx.onMenuShareAppMessage({
                        title: title, // 分享标题
                        desc:desc,
                        link:shared_link, // 分享链接
			type:'link',
                        imgUrl: '分享图标的url,以http或https开头', // 分享图标
                        success: function () {
                        	//$scope.toast(desc);
                            // 用户确认分享后执行的回调函数
                        },
                        cancel: function () {
                            
                            // 用户取消分享后执行的回调函数
                        }
                    });

.......
}

补充一点
###不知道是微信服务器的问题还是我这边服务器的缘故,要执行一下分享成功和取消分享的回调函数,才能使整个分享流程走通。

具体原因未知,有遇到的可以留言讨论下。

你可能感兴趣的:(微信开发)