page Web ouvre APP Android

principe analytique

En termes de la plate - forme Android, URI divisé en trois parties:
schéma, l' autorité, le chemin
qui l' autorité est divisée en hôte et le port. Le format est le suivant:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]

Correspondant au manifeste <data>configuré comme suit:

<data android:host=""
      android:mimeType=""
      android:path=""
      android:pathPattern=""
      android:pathPrefix=""
      android:port=""
      android:scheme=""
      android:ssp=""
      android:sspPattern=""
      android:sspPrefix=""/>

Lorsque le système est d'être des paramètres, si non spécifié, d' autres attributs qui sont! Invalide
Si l'hôte n'est pas spécifié, le port, le chemin, pathPrefix, pathPattern ne sont pas valides!

Notre plus couramment utilisé scheme, host, port, pathquatre configurations.

exécution

Tout d' abord, AndroidManifesten MainActivityajoutant un <intent-filter>:

<intent-filter>  
      <action android:name="android.intent.action.VIEW" />  
      <category android:name="android.intent.category.BROWSABLE" />  
      <category android:name="android.intent.category.DEFAULT"/>  
      <data android:scheme="protocol" android:host="domain" android:pathPrefix="/link" />  
  </intent-filter>  

Ensuite, ajoutez un lien dans votre page web:

<a href="protocol://domain/link>打开app</a>

Enfin, cliquez sur un lien, si l'application est éjectée avec succès, alors félicitations, vous avez réussi.

étendre

Ouvrez l'application peut ne pas être assez léger, nous avons parfois des données de transfert, comment transmettre des données à elle?

Nous pouvons utiliser la méthode ci-dessus, certaines données à l'application, puis créer un lien pour le changer:

<a href="protocol://domain/link?id=123>打开app并传递id</a>

Ensuite, ajouter du code sur la méthode MainActivity onCreate dans l'application:

Uri uri = getIntent().getData();  
String id= uri.getQueryParameter("id");  

Cela lui permet de transférer des données!

Si le WebView dans l'application, les opérations d'acquisition de données de:

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

API

getScheme(); //获得Scheme名称 

getDataString(); //获得Uri全部路径 

getHost(); //获得host

Attachez le lien api officiel uri
https: //developer.android.com ...

commentaires sont les bienvenus

Je suppose que tu aimes

Origine www.cnblogs.com/homehtml/p/12505749.html
conseillé
Classement