mui微信分享shareApp

1 篇文章 0 订阅
1 篇文章 0 订阅

//微信分享js包(可以直接新建一个js文件把代码复制进去)
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://'
        });
    };
	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) {
            plus.nativeUI.alert('无效的分享服务[' + id + ']');
            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) {
                plus.nativeUI.alert("认证授权失败");
                callback && callback(false);
            })
        }
    };
	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) {
        if (shareServices.weixin && isWechatInstalled()) {
            plus.nativeUI.actionSheet({
                title: '分享到',
                cancel: "取消",
                buttons: [{
                    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;
	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: "微信朋友圈"
				}]
			}, 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;
})();

引入分享js

<script type="text/javascript" src="../../js/plusshare.js"></script>
function shareApp(id) {
				mui.ajax(site_url + 'personal/generateQRCode', {
					data: {
						token: plus.storage.getItem('token')
					},
					dataType: 'json',
					type: 'post',
					timeout: 10000,
					headers: {
						'content-type': 'application/x-www-form-urlencoded'
					},
					success: function(data) {
						if(data.status == 1) {
							invideCode = data.invideCode;
						} else if(data.status == 5){
							invideCode = data.invideCode;
							mui.toast('抱歉不是会员不得推荐积分');
						}
					},
					error: function(xhr, type, errorThrown) {
						mui.toast('网络错误');
					}
				});
				var message = {
					//title: appName, //应用名字
					//content: shareTitle,
					//href: "***********************/regWeb/bounds?invideCode=" + invideCode, //分享出去后,点击跳转地址
					//thumbs: ["**********************/zzg.png"] //分享缩略图
					pictures:["******************/static/img/"+id+".png"]
				}
				//调起分享
				plusShare(message, function(res) {
					//分享回调函数
					if(res) {
						plus.nativeUI.toast("分享成功");
						mui.ajax(site_url + 'personal/shareAddRestPoint', {
							data: {
								token: plus.storage.getItem('token')
							},
							dataType: 'json',
							type: 'post',
							timeout: 10000,
							headers: {
								'content-type': 'application/x-www-form-urlencoded'
							},
							success: function(data) {
								if(data.status == 1) {
									mui.toast('谢谢分享');
									
								}else{
									mui.toast('谢谢分享');
								}
								
							},
							error: function(xhr, type, errorThrown) {
								mui.toast('网络错误');
							}
						});	
					} else {
						plus.nativeUI.toast("分享失败");
					}
				})
			}
			

最后HBuilder勾选
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
仿微信通讯软件是一款基于MUI框架、Java语言,使用WebSocket协议和Netty作为通信机制,结合Spring Boot框架开发的一款即时通讯软件。 MUI是一套轻量级的移动端前端框架,可以快速构建移动应用界面。我们选择MUI框架作为开发工具,可以通过HTML、CSS和JS来设计用户界面和实现交互功能。 Java作为一门强大的编程语言,具备跨平台特性,在开发这款仿微信通讯软件中起到了重要的作用。通过Java语言的编写,我们可以实现用户注册、登录功能,消息的发送与接收,好友的添加和删除等功能。 为了实现实时通讯功能,我们使用WebSocket协议与服务器进行双向通信。WebSocket可以在浏览器和服务器之间建立持久性的连接,实现实时的消息传递。通过使用Java中的开源库Java-WebSocket,我们可以快速地实现WebSocket的功能。 与此同时,为了更好地处理高并发的通讯需求,我们选择Netty作为通信机制。Netty是一款高性能的网络编程框架,基于NIO技术,适合处理大规模的并发连接。通过使用Netty,我们可以实现高效的消息传递和处理。 最后,我们使用Spring Boot作为后端框架,实现整个仿微信通讯软件的业务逻辑和系统管理。Spring Boot提供了一种快速搭建轻量级、可扩展的应用程序的方式,大大简化了Java应用的开发流程和部署过程。 综上所述,通过使用MUI、Java、WebSocket、Netty和Spring Boot等技术,我们可以开发出一款仿微信通讯软件,实现实时通讯、用户注册登录、消息发送接收、好友管理等功能,为用户提供便捷的即时通讯服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值