Android 如何使用短信链接打开APP

Android 如何使用短信链接打开APP,第1张

概述短信链接跳转APP平时我们会收到广告短信,比如某东,某宝,里面附加着链接,当你点开链接(手机自带的浏览器),发现浏览器打开后,等一下下,就会打开对应的APP,直接到广告相应的页面。

短信链接跳转APP

平时我们会收到广告短信,比如某东,某宝,里面附加着链接,当你点开链接(手机自带的浏览器),发现浏览器打开后,等一下下,就会打开对应的APP,直接到广告相应的页面。

AndroID端的代码

从简单的开始,第一个启动的Activity先来处理

<activity androID:name=".activity.ActivityFirst">  <intent-filter>    <action androID:name="androID.intent.action.MAIN" />     <category androID:name="androID.intent.category.LAUNCHER" />  </intent-filter>  <!-- 不可以把上面,桌面启动图标的intent-filter,跟下面短信打开App的intent-filter写一起,否者没有桌面图标-->  <!-- 在启动的activity加入以下代码,其中scheme很重要,短信启动App的标识吧 -->  <intent-filter>    <data androID:scheme="baozi" />     <action androID:name="androID.intent.action.VIEW" />    <category androID:name="androID.intent.category.DEFAulT" />    <category androID:name="androID.intent.category.broWSABLE" />  </intent-filter></activity>

2.HTML代码,关键就是href,就是之前AndroID启动intent-filter的 “ [scheme的内容]” + “ :” 这个冒号不能少

<!DOCTYPE HTML><HTML><head>  <Title>AndroID短信测试</Title></head><body>  <a href="baozi:" rel="external nofollow" >启动程序</a></body></HTML>

3.测试一下,能不能启动App,我们没有服务器的情况下,可以把这段HTML代码拷贝到手机里,点击选择品牌自带浏览器启动就可以啦。

基本启动功能.gif

最基本的功能实现啦,然后我再传递参数,打开指定的页面。

1.HTML的跳转链接里面添加参数

<a href=" scheme的内容 :// host的内容?传递参数的key=传递参数的value" rel="external nofollow" >随意什么内容...</a><a href="baozi://bao.cn?type=red&url=111&name=红色" rel="external nofollow" rel="external nofollow" >启动红色程序</a><a href="baozi://bao.cn?type=yellow&name=黄色" rel="external nofollow" rel="external nofollow" >启动黄色色程序,url空</a><a href="baozi://bao.cn?type=green&url=333" rel="external nofollow" rel="external nofollow" >启动绿色程序,name空</a>

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代码

<!DOCTYPE HTML><HTML><head>  <Title>AndroID短信测试</Title></head><body>  <a href="baozi://bao.cn?type=red&url=111&name=红色" rel="external nofollow" rel="external nofollow" >启动红色程序</a>  <br>  <a href="baozi://bao.cn?type=yellow&name=黄色" rel="external nofollow" rel="external nofollow" >启动黄色色程序,url空</a>  <br>  <a href="baozi://bao.cn?type=green&url=333" rel="external nofollow" rel="external nofollow" >启动绿色程序,name空</a></body></HTML>

Manifest代码最上面有了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:Android中简单的电话管理与短信管理App编写实例 总结

以上是内存溢出为你收集整理的Android 如何使用短信链接打开APP全部内容,希望文章能够帮你解决Android 如何使用短信链接打开APP所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1149700.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存