短信链接跳转

需求描述:今天刚好有一个需求,就是给用户发送短信的时候,发送一个链接,当用户点击链接的时候,能够打开app,同时跳转到app的某一个页面。这个时候就需要app端给我提供一个链接(肯定带了参数),但是发送短信的时候又不能完全把这个链接发送给用户。一是因为那样的链接太丑,二是因为太长。所以则用到了短链接。

关于app那边的跳转逻辑:通过链接打开一个空白页面,然后在该页面中写一些js代码,判断该手机是苹果还是安卓,从而唤起app(该跳转逻辑,只是针对app的)。

一、短链接原理

其实很简单,就是把一个长地址如:http://zhyq.shibei.com/article/article.htm  用一个算法转换成短地址如:http://csdn.cn/7bqr87dc。然后把7bqr87dc------->http://zhyq.shibei.com/article/article.htm之间的对应关系保存到数据库中去。当用户访问http://csdn.cn/7bqr87dc链接时,系统到数据库中找到真是的URL地址,实现跳转。

二、实现思路

  服务器收到一个短链接请求时,需要把从http地址中解析出短链接,然后将得到的短链接在数据库中进行查询,找到其对应的长连接,进而重定向到该长长链接对应的地址。另外,服务器在此时可以随意进行一些需要的统计工作

            步骤:

1.建立一个存短链接的表

2.当点击短链接的时候,跳转到一个html页面,然后加载该页面的时候,通过ajax调用一个接口,返回该链接的真实地址,然后在重定向到真实的地址。

<script type="text/javascript" >
window.onload =function() {
     var locationurl = this.location.href;
	 $.get("http://zhyq.shibei.com:8080/cnp/webservice.cnp?method=getShortLink&noSign=true",{"link":locationurl}, function(result){
	    var u = navigator.userAgent;
		var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
		var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
		if (isAndroid) {
           window.location.href=result.data.android_url;
		} else if (isiOS){
           window.location.href=result.data.real_link_url;		   
		} else {
		   alert("不支持当前设备");
		}
	  },"json");
}
</script>

3.还需要在tomcat中进行配置地址。即类似于下面的链接,都跳转到同一个页面。

    http://sbgx.sxsihe.com/vOWxR7izzT
               http://sbgx.sxsihe.com/SOBxR7iabT

具体配置见后面文章

参考链接:

https://www.douban.com/note/602696828/

https://dwz3.cn/stranger/r?url=https%3A%2F%2F0x9.me%2FUwKE8

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值