最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Android 如何使用短信链接打开APP
时间:2022-06-25 23:02:35 编辑:袖梨 来源:一聚教程网
短信链接跳转APP
平时我们会收到广告短信,比如某东,某宝,里面附加着链接,当你点开链接(手机自带的浏览器),发现浏览器打开后,等一下下,就会打开对应的APP,直接到广告相应的页面。
Android端的代码
从简单的开始,第一个启动的Activity先来处理
2.HTML代码,关键就是href,就是之前Android启动intent-filter的 “ [scheme的内容]” + “ :” 这个冒号不能少
Android短信测试 启动程序
3.测试一下,能不能启动App,我们没有服务器的情况下,可以把这段HTML代码拷贝到手机里,点击选择品牌自带浏览器启动就可以啦。
基本启动功能.gif
最基本的功能实现啦,然后我再传递参数,打开指定的页面。
1.HTML的跳转链接里面添加参数
scheme:启动的App的标识,相当于协议吧。
host:域名,不重要。
query:传给app参数的Key和Value 。
2.Android代码,在第一启动页加入下面代码
public static final String TYPE_INTENT = "type";
public static final String URL_INTENT = "url";
public static final String NAME_INTENT = "name";
if (intent.getData() != null)
{
Uri uri = intent.getData();
uri.getScheme();//获取scheme
uri.getHost();//获取host
uri.getAuthority();//获取authority
String type = uri.getQueryParameter(TYPE_INTENT);//获取传递参数
String url = uri.getQueryParameter(URL_INTENT);
String name = uri.getQueryParameter(NAME_INTENT);
//标题转UTF-8码
if (!TextUtils.isEmpty(name))
{
try
{
name = URLDecoder.decode(name, "UTF-8");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
}
参数可以传空的,如果是中文要转码,断点看看参数
3.测试。
参数跳转.gif
4.总结,短信跳转App难度不大,就是基本用原生或者chrome内核的浏览器,支持跳转,其他浏览器兼容问题会有。
5.代码不多,就直接放出来。
ActivityFirst代码
public class ActivityFirst extends AppCompatActivity
{
public static final String TYPE_INTENT = "type";
public static final String URL_INTENT = "url";
public static final String NAME_INTENT = "name";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.first_activity);
//如果是从网址打开的
Intent intent = getIntent();
if (intent.getData() != null)
{
Uri uri = intent.getData();
uri.getScheme();//获取scheme
uri.getHost();//获取host
uri.getAuthority();//获取authority
String type = uri.getQueryParameter(TYPE_INTENT);
String url = uri.getQueryParameter(URL_INTENT);
String name = uri.getQueryParameter(NAME_INTENT);
//标题转UTF-8码
if (!TextUtils.isEmpty(name))
{
try
{
name = URLDecoder.decode(name, "UTF-8");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
//获取到的参数跳转
Intent intentStart = new Intent(this,ActivityMain.class);
intentStart.putExtra(TYPE_INTENT,type);
intentStart.putExtra(URL_INTENT,url);
intentStart.putExtra(NAME_INTENT,name);
startActivity(intentStart);
finish();
}
}
}
HTML代码
Android短信测试 启动红色程序
启动黄色色程序,url空
启动绿色程序,name空
相关文章
- dnf神界版本蓝拳装备搭配毕业攻略 神界版本蓝拳装备怎么选 11-29
- 流放之路S24速刷简单策略选择推荐 11-29
- 魔兽世界乌龟服防骑a怪一键宏指令分享 11-29
- 创世秩序全地图资料汇总 全地图区域中文名字对照 11-29
- 播种委员会全角色解锁攻略 全人物解锁位置详解 11-29
- 魔兽世界N服官网地址分享 Everlook服入口位置2024 11-29


