首页 > 原创文章 > 技术应用 > 查看文章

短信链接调起APP和小程序的方法

所属分类:技术应用 来源: 丁老师原创 更新时间:2025-12-10 10:17 浏览: 2287 IP属地: 深圳
微信小程序开发

有同学在群里咨询,想通过短信精准营销,实现用户收到短信后,点击打开短信链接就自动调起微信小程序或APP,请问丁老师这个可以实现吗?该如何实现呢?今天丁老师对这个问题进行解答。

短信链接打开微信小程序和APP的原理
通过群发短信,然后用户点击短信链接,就可以打开微信小程序或者APP,这种方式其实实现起来很简单。
1.原理是在短信中添加一个url网址,最好是短网址,不要太长。
2.这个网址打开后是一个静态的html页面,这个页面包含可以打开微信小程序或者APP的代码。
3.这个网址的网页可以进行UI设计,也可以不设计。设计美化后的网页可以做成类似拼多多的那种,引导用户手动打开微信小程序或APP。也可以不设计,直接自动触发代码调用打开微信小程序或APP。

短信链接打开微信小程序的方法
1.通过微信的Url Scheme实现。Url Scheme是一种专属的url格式,可以用来唤醒小程序。这个url需要服务端调用微信接口生成,也可以直接在小程序管理后台生成。生成后访问这个链接即可打开小程序。
2.通过Url Link实现,Url Link就是普通的url网址,由微信服务端生成的Url Link,也可以用来唤醒小程序。这个url link也需要服务端调用微信接口生成,生成后访问这个链接即可打开小程序。
3.在生成以上两个链接后,可以将短信中的短网址链接,自动跳转到url scheme或url link,也可以在打开短网址链接后,自动触发这两个url,以实现微信小程序的调用打开。

短信链接打开APP的方法
1.短信跳转的网址,增加a链接,引导用户点击,a链接的href中需要填写这个app的url scheme信息,比如

#该链接会打开淘宝,并传递id为123456的值过去
<a href="taobao://item?id=123456"></a>

2.短信跳转的网址,通过JS代码判断,如果本地已安装APP就自动打开,如果没有安装就引导下载安装。

<button id="openOrInstallApp">打开/安装我的App</button>

<script>
	//配置项(根据自己的App修改)
	const APP_CONFIG = {
		//Android Scheme
		androidScheme: 'myapp://page/home',

		//iOS Scheme
		iosScheme: 'myapp://page/home',

		//iOS Universal Link(可选,无则用Scheme)
		iosUniversalLink: 'https://your-domain.com/open/app',

		//应用商店链接
		//iOS App Store地址
		appStoreUrl: 'https://apps.apple.com/cn/app/xxx/id123456789',

		//腾讯应用宝地址
		androidStoreUrl: 'https://a.app.qq.com/o/simple.jsp?pkgname=com.xxx.xxx', 
		
		//自定义下载地址
		fallbackUrl: 'https://www.xxx.com/app/download'
	};

	//判断设备类型
	function getDeviceType(){
		const ua = navigator.userAgent.toLowerCase();

		if (ua.includes('iphone') || ua.includes('ipad')) return 'ios';
		if (ua.includes('android')) return 'android';

		return 'other';
	}

	//唤起App核心方法
	async function openApp(){
		const device = getDeviceType();
		let isAppOpened = false;

		//监听页面隐藏事件
		const onPageHidden = () =>{
			isAppOpened = true;

			//移除监听,避免重复触发
			document.removeEventListener('visibilitychange', onPageHidden);
			window.removeEventListener('pagehide', onPageHidden);
		};

		document.addEventListener('visibilitychange', onPageHidden);
		window.addEventListener('pagehide', onPageHidden);

		try {
			if (device === 'ios' && APP_CONFIG.iosUniversalLink) {
				//1.iOS优先用Universal Link(无拦截)
				window.location.href = APP_CONFIG.iosUniversalLink;
			}

			
			else {
				//2.用Scheme唤起
				const scheme = device === 'ios' ? APP_CONFIG.iosScheme : APP_CONFIG.androidScheme;

				//创建隐藏iframe触发Scheme
				const iframe = document.createElement('iframe');
				iframe.style.display = 'none';
				iframe.src = scheme;
				document.body.appendChild(iframe);

				setTimeout(() => document.body.removeChild(iframe), 2000);

				//同时直接跳转Scheme
				window.location.href = scheme;
			}

			//3. 延迟检测,未唤起则跳转安装页
			setTimeout(() =>{
				if (!isAppOpened){
					let installUrl = APP_CONFIG.fallbackUrl;
					if (device === 'ios') installUrl = APP_CONFIG.appStoreUrl;
					if (device === 'android') installUrl = APP_CONFIG.androidStoreUrl;

					window.location.href = installUrl;
				}
			}, 1800);

		}
		catch (e) {
			//异常时直接跳转兜底页
			window.location.href = APP_CONFIG.fallbackUrl;
		}
	}

	// 绑定按钮点击事件
	document.getElementById('openOrInstallApp').addEventListener('click', openApp);
</script>

备注
以上方式不仅可以实现从短信中调用打开微信小程序、APP,也可以将此方法应用到电子邮件、二维码等营销网页中,只要引导用户访问URL网页,最终都可以实现调用打开微信小程序和APP。

相关文章

OpenClaw(原Clawdbot/Mol...

在上一篇文章中,我们对OpenClaw进行了介绍《OpenClaw(原Clawdbot/Moltbot)是什么?能实现什么功能?》,在本篇文章中,我们将就如何安装OpenClaw,对OpenClaw的具体安装方法进行说明。OpenCla...

国内外各大厂的AI编程工具对比

自从AI应用普及以来,各大厂都相应推出了自己的AI编程工具,好不好用先不说,今天咱们把这些工具列出来,并进行一个简单的对比。国内大厂工具腾讯CodeBuddy,是全流程AI一体化工作台,是以vs code插件的形式存在,在vs code...

React框架适合做网站吗?

有同学在群里提问,React有快速应用开发框架,比如nextjs+tailwind.css的技术框架,可以实现网页应用的快速开发。但又听说React开发的网站不太好,那么React到底适合做网站吗?今天丁老师给你解答。其实,目前国内的确...

宝塔面板升级后打不开的解决方法

有同学咨询丁老师,使用的宝塔面板,在升级到最新版本后,网站和程序都正常,就是管理面板打不开了,连登录页都不出现,是怎么回事呢?丁老师今天就对这个问题进行一下解答。故障分析首先,丁老师进入该服务器,输入bt default命令,查看宝塔运...

推荐文章

Linux使用lnmp套件安装后打卡默认站点...

最近要在某单位内网部署项目,使用了lnmp来配置环境,软件安装成功,可安装后不管是打开ip地址还是默认站点,都提示nginx 403 forbidden,这是怎么回事呢?首先,已经出现了nginx 403提示,说明nginx是安装正常的。其...

Windows11右键恢复经典模式的方法[亲...

windows11更新后,不管是桌面的右键,还是文件上点右键,都非常地别扭,而且也非常的卡顿。在网上找了一堆方法,都不管用,经过不懈努力,终于找到了真正能恢复经典版右键的方法。废话不多说,具体方法如下:1.以管理员方式运行CMD打开后,在C...

微信小程序搜索如何让排名靠前?

上一期我们讲到了《微信小程序发布后多久可以能被搜索到?》,我们已经知道了微信小程序在上架后,多久能被搜索到的一个时间范围。本期我们讲一下,微信小程序被搜索,如何提升排名,是搜索结果靠前的方法。首先,微信小程序的搜索结果排名,并没有一个固定的...

国产信创项目操作系统要求用什么?web中间件...

从事技术开发的同学都知道,不管是做网站也好,开发各种业务系统也好,目前大多数企业部署的web环境是-操作系统:Linux,数据库:Mysql/MariaDB/PostgreSQL/MongoDB,Web容器:Nginx/Tomcat/Apa...