通过一个链接打开本地app,或者去下载app

以前支付宝发短信给你手机 ,然后你点开这个链接的时候会发现它自动的打开了支付宝软件   ,这个是如何做到的呢 ?

我认为实现的原理就是,这个链接通过浏览器打开,然后自动执行js方法,如果本地有支付宝软件,就去打开这个方法。。当然支付宝app也要做对应的处理了

1.app端的处理

其实这个主要的工作还是在链接js上的处理,app所要的操作就是很简单的,在android中的intent-filter提供了对应的操作,


            
                
                
                
                
            
        

其中的scheme和hos,以及pathPrefix 和链接的必须是一致的,h5的链接格式必须是

 唤起应用 

和上面的一一对应,scheme (唤起协议)和host(唤起指定host)是必须的有的,然后path(协议路径)和query(参数)可以没有

然后就是activity的处理了,

Uri uri = getIntent().getData();
        StringBuilder sb = new StringBuilder();
        // 唤起链接
        sb.append("string : ").append(getIntent().getDataString()).append("\n");
        sb.append("scheme : ").append(uri.getScheme()).append("\n");
        sb.append("host : ").append(uri.getHost()).append("\n");
        sb.append("port : ").append(uri.getPort()).append("\n");
        sb.append("path : ").append(uri.getPath()).append("\n");
        // 接收唤起的参数
        sb.append("name : ").append(uri.getQueryParameter("name")).append("\n");
        sb.append("page : ").append(uri.getQueryParameter("page"));

        tv_url.setText(sb.toString());

2js的处理

对于js的应用代码呢也贴下吧,这个是通过点击 Start or DownLoad这个按钮来下载的

 Start or Download 


如果你不想点击打开链接就直接OK了呢,(这个呢可以直接问会js的人了)。也可以用下面的代码了

 
    
    
    h5跳原生
    

    

    

    




参考文献:

http://ihongqiqu.com/2015/12/03/html-call-native-app/

你可能感兴趣的:(android,开发)