美文网首页Android开发Android知识Android技术知识
JS唤醒Android APP(包括在外部浏览器和WebView

JS唤醒Android APP(包括在外部浏览器和WebView

作者: BertSir | 来源:发表于2016-11-22 15:28 被阅读4923次

    1.AndroiManifest.xml中配置

    请在App启动的第一个Activity的那个节点中加入

    <intent-filter>    
    <action android:name="android.intent.action.VIEW"/>    
                          <category android:name="android.intent.category.DEFAULT"/>    
                          <category android:name="android.intent.category.BROWSABLE"/>   
                           <data        android:host="arseeds.com"       
                                           android:scheme="zhaojian"/>
    </intent-filter>
    

    例如我是以GuideActivity为第一个启动的Activity,配置如下

    <activity android:name=".base.activity.GuideActivity">   
     <intent-filter>        
    <action android:name="android.intent.action.MAIN"/>        
    <category android:name="android.intent.category.LAUNCHER"/>    
    </intent-filter>   
     <intent-filter>       
     <action android:name="android.intent.action.VIEW"/>       
     <category android:name="android.intent.category.DEFAULT"/>        
    <category android:name="android.intent.category.BROWSABLE"/>        
    <data            android:host="arseeds.com"         
       android:scheme="zhaojian"/> 
       </intent-filter>
    </activity>
    

    data中的host和scheme可以自定义

    2.在浏览器中唤醒APP

    需要在第一个启动的Activity中的onCreate中加入

              Intent intent = getIntent();
              Uri uri = intent.getData();
            if (uri != null) {     
            String pid = uri.getQueryParameter("pid");  
            }
    
    

    pid为自定义链接的参数,如果仅仅只是唤醒APP,就可以忽略此步骤

    3.在WebView中的唤醒

    需要在WebView中配置

    webView.setWebViewClient(new WebViewClient(){ 
                @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                        Uri uri=Uri.parse(url);
                       if(uri.getScheme().equals("zhaojian")&&uri.getHost().equals("arseeds.com")){ 
                                String arg0=uri.getQueryParameter("arg0");
                               String arg1=uri.getQueryParameter("arg1"); 
                          }else{ 
              view.loadUrl(url); 
            } return true; 
    }});
    

    拿到了参数,剩下的就不用我说了

    4.最重要的是在html中的配置

    
    <html>
           <head>
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
                          <title>Insert title here</title>
           </head> 
            <body> 
                      <a href="zhaojian://arseeds.com/?pid=1">打开app</a><br/>
               </body></html>
    
    

    OK,就这么简单

    相关文章

      网友评论

        本文标题:JS唤醒Android APP(包括在外部浏览器和WebView

        本文链接:https://www.haomeiwen.com/subject/lynppttx.html