短信链接跳转浏览器,间接打开APP

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

Android端的代码

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

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

    Android短信测试    启动程序

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


基本启动功能.gif

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

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

随意什么内容... 启动红色程序启动黄色色程序,url空启动绿色程序,name空

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();                }            }        }

参数可以传空的,如果是中文要转码,断点看看参数


TIM截图20180313124847.jpg

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空

Manifest代码最上面有了

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Git使用规范 Android(安卓)版
  3. Android(安卓)学习笔记 - 《第一行代码 Android(安卓)第二版》
  4. Android的Widget编写实例
  5. Android(安卓)Studio中ShareSDK分享的使用.
  6. Android怎样停止AsyncTask和Thread
  7. Android(安卓)Webview 使用小结
  8. 微信的研究及sppeex库的使用(整理)
  9. Android:SqliteDatabase 数据库的简单使用

随机推荐

  1. 【国外转】Spring Android and Maven (Ma
  2. android kernel下載及編譯 (goldfish)
  3. android 检测应用异常 UncaughtException
  4. Android Activity去除标题栏和状态栏(z)
  5. android中drawable显示到view上的过程
  6. 控件:拖动条 --- SeekBar(改变屏幕亮度)
  7. android 代码设置apn
  8. Android 通过代码执行Linux 命令 echo 命
  9. android的单个图片 上传服务器
  10. 网址收藏