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
, path
quatre configurations.
exécution
Tout d' abord, AndroidManifest
en MainActivity
ajoutant 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 ...