#Android 通过浏览器打开手机app

CTO吩咐下来的任务...弄下能不能在浏览器中启动我们的App。

踩坑

原来的做法是:


启动应用程序 

各个值的定义为:

scheme:判别启动的App。 ※详细后述
host:适当记述
path:传值时必须的key ※没有也可以
query:获取值的Key和Value ※没有也可以


例如:


启动应用程序  

而在android的清单文件的主页面配置如下:


  
      
      
      
      


然而...并不可以,我用的魅族的手机,用的魅族自带浏览器。GG了
谷歌浏览器,或者是android原生浏览器可能可以,或者是我们自带的WebView。

有看到帖子说是因为data-sentintent的原因,具体原因我也没有去查看。
有兴趣的童鞋可以坐飞机直达:--------> 飞吧

解决

此路不通我们走另外一条路。

肯定是不能使用简单的来进行查找,我们使用js~:




    
        

        
        

        打开我的app
        
    
    
        

        
    


我们需要注意这个地方:


  

记得替换成你们的下载地址。

而我们大android的清单文件需要配置:


 
            
                
                
            
            
                
                
                
                
            
        

OK,使用魅族的浏览器亲测成功。其他牌子的浏览器稍候测试,毕竟我那么反感那些花里胡哨的浏览器,要下载测试我是不情愿。。。

优化

好了,好像单纯地打开app...没什么卵用啊,能不能传值呢?答案是可以的~我们看js:


         var config = {
                    /*scheme:必须*/
                    scheme_IOS: 'cundong://',
                    scheme_Adr: 'cundong://splash',
                    download_url: document.getElementById('J-download-app').value,
                    timeout: 600
                };

其中的scheme_Adr就是android的匹配Scheme,如果需要传值的话,就是在后面通过get的方式进行传值。

   var config = {
                    /*scheme:必须*/
                    scheme_IOS: 'cundong://',
                    scheme_Adr: 'cundong://splash?nama=Ly&age=18',
                    download_url: document.getElementById('J-download-app').value,
                    timeout: 600
                };

然后在跳转的页面中进行获取:


  Intent i_getvalue = getIntent();
        String action = i_getvalue.getAction();

        if (Intent.ACTION_VIEW.equals(action)) {
            Uri uri = i_getvalue.getData();
            if (uri != null) {
                String name = uri.getQueryParameter("name");
                String age = uri.getQueryParameter("age");
                showTs(name);
                showTs(age);
                showLog("name----------------"+name);
                showLog("age----------------"+age);
            }
        }

就可以进行Hhtml调起APP,并进行页面传值的操作了... 其实难度主要是在js方面。

你可能感兴趣的:(#Android 通过浏览器打开手机app)