uniapp写的安卓版本的App跳转到小程序,在小程序内执行一定操作后再次返回到App内
发表时间:2020-10-21
发布人:葵宇科技
浏览次数:239
最近开发一款App和小程序,先做完的小程序,然后又开发了基本上相同类型的App。 客户要求,App和小程序的数据打通,用户可以在App注册后,在小程序内可以直接登录,使用。然后在小程序内进行授权登录过的用户,在App内注册后,可以直接同步自己已经有的数据。
 前提:
 App移动应用和小程序是绑定在同一个移动开放平台下面的。
 关于移动开放平台的这块,我就不细说了,网上也有很多关于这方面的文档。
 1.在APP内跳转到小程序,找了官方文档,
 https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Share_and_Favorites/Android.html
 下面是官方文档给出的 分享为小程序代码:
WXMiniProgramObject miniProgramObj = new WXMiniProgramObject();
miniProgramObj.webpageUrl = "http://www.qq.com"; // 兼容低版本的网页链接
miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE;// 正式版:0,测试版:1,体验版:2
miniProgramObj.userName = "gh_d43f693ca31f";     // 小程序原始id
miniProgramObj.path = "/pages/media";            //小程序页面路径;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"
WXMediaMessage msg = new WXMediaMessage(miniProgramObj);
msg.title = "小程序消息Title";                    // 小程序消息title
msg.description = "小程序消息Desc";               // 小程序消息desc
msg.thumbData = getThumb();                      // 小程序消息封面图片,小于128k
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("miniProgram");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;  // 目前只支持会话
api.sendReq(req);
 
	//
	//>getPlus() {
				//获取当前显示的webview
				var pages = getCurrentPages()
				var page = pages[pages.length - 1]
				var currentWebview = page.$getAppWebview()
				//调用H5+APP的扩展API
				var shares = null;
				let that = this
				var pusher = plus.share.getServices(function(s) {
					shares = {};
					for (var i in s) {
						var t = s[i];
						shares[t.id] = t;
					}
					that.sweixin = shares['weixin'];
				}, function(e) {
					console.log("获取分享服务列表失败:" + e.message);
				});
				//放入当前的webview
				currentWebview.append(pusher);
			},
			//前往小程序的函数
						//前往小程序
			checkWeChat() {
				//调用微信小程序
				let token = uni.getStorageSync('token');
				this.sweixin.launchMiniProgram({
					id: 'gh_b00000000', //要跳转小程序的原始ID,不是appid
					path: 'pages/gereninfo_shouquan/gereninfo_shouquan?apptoken=' + token,    //可以传递参数待在path后面
					type: 0  //0是正式版  1是开发版,2是体验版
				})
			},
``
 
下面进入小程序之后, 怎么在小程序返回APP。
// 在小程序跳转页面>onLoad(params) {
	this.apptoken = params.apptoken
},
//返回app,是直接用button open-type="launchAPP" 
<button type="" class="phonebtn" open-type="launchApp" app-parameter="wechat" @error="launchAppfail()">确定</button>
//返回的函数
//返回app
	BackApp(e) {
		uni.showModal({
			title: '返回成功',
		})
		wx.navigateBackApplication({
		})
	}
 
//其实最后的这块我是看别人的来写的,可以在安卓手机里面实现返回App,但是,我总是感觉还是有问题的。希望有知道的,可以帮忙给看一下我写的对不对。 ios目前我们还没有打包测试,可能会有一些兼容性的问








