Hbuild网站打包app添加微信分享功能
sitemap.json 添加公共引入的append.js文件
模块权限勾选微信分享
append.js文件
$(function(){ //动态加载plusShare.js var script=document.createElement("script"); script.type="text/javascript"; script.src="static/plusShare.js"; document.getElementsByTagName('head')[0].appendChild(script); //添加分享按钮html var len = $('body').append('<div id="share">分享</div>'); //点击触发分享 $(document).on('click','#share',function(){ if(navigator.userAgent.indexOf("Html5Plus") > -1) { //5+ 原生分享 window.plusShare({ title: "my-app-name",//应用名字 content: "分享具体内容", href: location.href,//分享出去后,点击跳转地址 thumbs: ["https://bbs.51zuso.com/static/image/common/logo.png"] //分享缩略图 }, function(result) { //分享回调 }); } else { //原有wap分享实现 } }); });
plusShare.js 文件代码
(function() { var plusReady = function(callback) { if(window.plus) { callback(); } else { document.addEventListener('plusready', callback); } } var shareServices = {}; var init = function() { plus.share.getServices(function(services) { for(var i = 0, len = services.length; i < len; i++) { shareServices[services[i].id] = services[i]; } }); }; var isWechatInstalled = function() { return plus.runtime.isApplicationExist && plus.runtime.isApplicationExist({ pname: 'com.tencent.mm', action: 'weixin://' }); }; function share(id, msg, callback) { var service = shareServices[id]; if(!service) { callback && callback(false); return; } var _share = function() { service.send(msg, function() { plus.nativeUI.toast("分享到\"" + service.description + "\"成功!"); callback && callback(true); }, function(e) { plus.nativeUI.toast("分享到\"" + service.description + "\"失败!"); callback && callback(false); }) }; if(service.authenticated) { _share(service, msg, callback); } else { service.authorize(function() { _share(service, msg, callback); }, function(e) { console.log("认证授权失败"); callback && callback(false); }) } }; function openSystem(msg, callback) { if(plus.share.sendWithSystem) { plus.share.sendWithSystem(msg, function() { //TODO 系统分享暂不支持回调 //callback && callback(true); }, function() { //TODO 系统分享暂不支持回调 //callback && callback(false); }); } else { callback && callback(false); } } var open = function(msg, callback) { /** *如下情况直接打开系统分享 * 1、未配置微信分享通道 * 2、用户手机未安装威胁你 * 3、360浏览器下 */ if(shareServices.weixin && isWechatInstalled() && !/360\sAphone/.test(navigator.userAgent)) { plus.nativeUI.actionSheet({ title: '分享到', cancel: "取消", buttons: [{ title: "微信消息" }, { title: "微信朋友圈" }, { title: "更多分享" }] }, function(e) { var index = e.index; switch(index) { case 1: //分享到微信好友 msg.extra = { scene: 'WXSceneSession' }; share('weixin', msg, callback); break; case 2: //分享到微信朋友圈 msg.title = msg.content; msg.extra = { scene: 'WXSceneTimeline' }; share('weixin', msg, callback); break; case 3: //更多分享 var url = msg.href ? ('( ' + msg.href + ' )') : ''; msg.title = msg.title + url; msg.content = msg.content + url; openSystem(msg, callback); break; } }) } else { //系统分享 var url = msg.href ? ('( ' + msg.href + ' )') : ''; msg.title = msg.title + url; msg.content = msg.content + url; openSystem(msg, callback); } }; plusReady(init); window.plusShare = open; })();
参考文档:https://ask.dcloud.net.cn/article/12765
注意:app应用需要在微信开放平台申请,否则也分享不了
https://open.weixin.qq.com/