小程序 获取小程序链接

获取打开小程序任意页面的链接,适用于从短信、邮件、微信外网页等场景打开小程序。 
 
 服务端调用
 
 短信打开小程序的三种方式:

	通过URL Scheme实现
	通过服务端接口或在小程序管理后台生成URL Scheme后,自行开发中转H5页面。
	将带有中转H5链接的短信内容通过开发者自有的短信发送能力或服务商的短信服务进行投放,实现短信打开小程序。
	
	通过URL Link实现
	通过服务端接口生成URL Link。
	
	直接将带有URL Link的短信内容通过开发者自有的短信发送能力或服务商的短信服务进行投放,实现短信打开小程序。
	
	通过云开发静态网站实现
	可以参考「云开发」-「静态网站」-「短信跳小程序」。
 
1、URL Scheme
	通过URL Scheme打开小程序的场景值为1065。Scheme如下:weixin://dl/business/?t= *TICKET*
	
	(1)获取URL Schema
		方式一:
			POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
			请求参数
				access_token|cloudbase_access_token			接口调用凭证
				jump_wxa		跳转到的目标小程序信息。
					path			通过scheme码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带query。path为空时会跳转小程序主页。
					query			通过scheme码进入小程序时的query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%``
					env_version		要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop",仅在微信外打开时生效
				is_expire		生成的scheme码类型,到期失效:true,永久有效:false。注意,永久有效scheme和有效时间超过180天的到期失效scheme的总数上限为10万个,详见获取URLscheme,生成scheme码前请仔细确认。
				expire_type		到期失效的scheme码失效类型,失效时间:0,失效间隔天数:1
				expire_time		到期失效的scheme码的失效时间,为Unix时间戳。生成的到期失效scheme码在该时间前有效。最长有效期为1年。is_expire为true且expire_type为0时必填
				expire_interval	到期失效的scheme码的失效间隔天数。生成的到期失效scheme码在该间隔时间到达前有效。最长间隔天数为365天。is_expire为true且expire_type为1时必填
			
			云函数调用:
				const cloud = require('wx-server-sdk')
				cloud.init({
				  env: cloud.DYNAMIC_CURRENT_ENV,
				})
				exports.main = async (event, context) => {
				  try {
				    const result = await cloud.openapi.urlscheme.generate({
				        "jumpWxa": {
				          "path": '/pages/publishHomework/publishHomework',
				          "query": ''
				        },
				        "isExpire": true,
				        "expireTime": 1606737600
				      })
				    return result
				  } catch (err) {
				    return err
				  }
				}
			
		方式二:小程序管理后台「工具」-「生成 URL Scheme」入口可以获取打开小程序任意页面的URL Scheme
		
		iOS系统支持识别URL Scheme,可在短信等应用场景中直接通过Scheme跳转小程序。
		Android系统不支持直接识别URL Scheme,开发者需要使用H5页面中转,再跳转到Scheme实现打开小程序,跳转代码示例如下:
			location.href = 'weixin://dl/business/?t= *TICKET*'
			
			使用云开发静态网站跳转小程序
				网页会判断所在的环境来觉得采用哪种跳转方式,如检测到微信客户端内,则免鉴权使用开放标签跳转,如检测到在外部浏览器或 App,则使用URL Scheme跳转小程序。
				示例网页地址:https://postpay-2g5hm2oxbbb721a4-1258211818.tcloudbaseapp.com/jump-mp.html
				详细代码示例和说明:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/staticstorage/jump-miniprogram.html
				
			微信内的网页如需打开小程序请使用微信开放标签-小程序跳转按钮(https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#%E5%BC%80%E6%94%BE%E6%A0%87%E7%AD%BE%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3)
			
			无公众号也可以直接使用小程序身份开发网页并免鉴权跳转小程序,见云开发静态网站跳转小程序。符合开放范围的小程序可以下发支持打开小程序的短信


2、URL Link
	POST https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN
	请求参数
		access_token|cloudbase_access_token		接口调用凭证
		path			通过URLLink进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带query。path为空时会跳转小程序主页
		query			通过URLLink进入小程序时的query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~%
		env_version		要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop",仅在微信外打开时生效。
		is_expire		生成的URLLink类型,到期失效:true,永久有效:false。注意,永久有效Link和有效时间超过180天的到期失效Link的总数上限为10万个,详见获取URLLink,生成Link前请仔细确认。
		expire_type		小程序URLLink失效类型,失效时间:0,失效间隔天数:1
		expire_time		到期失效的URLLink的失效时间,为Unix时间戳。生成的到期失效URLLink在该时间前有效。最长有效期为1年。expire_type为0必填
		expire_interval		到期失效的URLLink的失效间隔天数。生成的到期失效URLLink在该间隔时间到达前有效。最长间隔天数为365天。expire_type为1必填
		cloud_base			云开发静态网站自定义H5配置参数,可配置中转的云开发H5页面。不填默认用官方H5页面
			env				云开发环境
			domain			静态网站自定义域名,不填则使用默认域名
			path			云开发静态网站H5页面路径,不可携带query
			query			云开发静态网站H5页面query参数,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%``
			resource_appid		第三方批量代云开发时必填,表示创建该env的appid(小程序/第三方平台)
	
	云函数方式:
		const cloud = require('wx-server-sdk')
		cloud.init({
		  env: cloud.DYNAMIC_CURRENT_ENV,
		})
		exports.main = async (event, context) => {
		  try {
		    const result = await cloud.openapi.urllink.generate({
		        "path": '/pages/publishHomework/publishHomework',
		        "query": '',
		        "isExpire": true,
		        "expireType": 1,
		        "expireInterval": 1,
		        "envVersion": 'release',
		        "cloudBase": {
		          "env": 'xxx',
		          "domain": 'xxx.xx',
		          "path": '/jump-wxa.html',
		          "query": 'a=1&b=2'
		        }
		      })
		    return result
		  } catch (err) {
		    return err
		  }
		}

3、Short Link
	适用于微信内拉起小程序的业务场景。通过Short Link打开小程序的场景值为 1179。生成的ShortLink如下所示:#小程序://小程序示例/示例页面/9pZvnVw3KMCQpVp
	
	POST https://api.weixin.qq.com/wxa/genwxashortlink?access_token=ACCESS_TOKEN
	请求参数
		access_token|cloudbase_access_token			接口调用凭证
		page_url			通过ShortLink进入的小程序页面路径,必须是已经发布的小程序存在的页面,可携带query,最大1024个字符
		page_title			页面标题,不能包含违法信息,超过20字符会用...截断代替
		is_permanent		生成的ShortLink类型,短期有效:false,永久有效:true
	
	云函数方式:
		const cloud = require('wx-server-sdk')
		cloud.init({
		  env: cloud.DYNAMIC_CURRENT_ENV,
		})
		exports.main = async (event, context) => {
		  try {
		    const result = await cloud.openapi.shortlink.generate({
		        "pageUrl": '/pages/publishHomework/publishHomework?query1=q1',
		        "pageTitle": 'Homework title',
		        "isPermanent": false
		      })
		    return result
		  } catch (err) {
		    return err
		  }
		}

4、NFC标签打开小程序
	https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/NFC.html
    原文作者:神奇大叔
    原文地址: https://blog.csdn.net/weixin_43294560/article/details/121264514
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞