Je peux ajouter un lien vers, par exemple, 'navigon: //' sur un site Web qui, dans les appareils iOS, ouvrira l'application Navigon si elle est installée.
Existe-t-il une méthode simple similaire pour ouvrir une application à partir d'un site Web (en supposant qu'elle soit installée) dans Android?
Liens profonds Android: ajoutez un filtre d'intention à votre manifeste
<activity
Android:name="com.example.Android.GizmosActivity"
Android:label="@string/title_gizmos" >
<intent-filter Android:label="@string/filter_title_viewgizmos">
<action Android:name="Android.intent.action.VIEW" />
<category Android:name="Android.intent.category.DEFAULT" />
<category Android:name="Android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data Android:scheme="http"
Android:Host="www.example.com"
Android:pathPrefix="/gizmos" />
<!-- note that the leading "/" is required for pathPrefix-->
<!-- Accepts URIs that begin with "example://gizmos”
<data Android:scheme="example"
Android:Host="gizmos" />
-->
</intent-filter>
https://developer.Android.com/training/app-indexing/deep-linking.html
Découvrez filtres d'intention dans Android. Découvrez la catégorie spécialement.
Voir Tout ce que vous devez savoir sur la mise en œuvre d'iOS et Android Mobile Deep Linking . Ceci est un bon article pour Android et iOS.
Vous savez peut-être déjà qu'il existe Deep Links , et à partir de Android 6.0 Android App Links est apparu. Ces derniers sont destinés à ouvrir une URL uniquement dans votre application, pas dans toute autre compétition. Par exemple, reddit.com peut être ouvert dans 7 applications, sinon utilisez cette vérification.
Vous pouvez associer chaque Activity
dont vous avez besoin à des liens à partir desquels il doit être ouvert. Par exemple, si vous souhaitez ouvrir dans l'application des liens comme https://awesomejobs.com/jobs/{id}
, vous devez ajouter ces lignes à AndroidManifest.xml
:
<activity Android:name="com.awesomejobsapp.ui.activity.JobActivity">
<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="https"
Android:Host="awesomejobs.com"
Android:pathPrefix="/jobs" />
</intent-filter>
</activity>
Puis dans JobActivity
écrivez (un code est reçu d'un article en russe):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_job);
final Intent intent = getIntent();
final String action = intent.getAction();
final String data = intent.getDataString();
if (Intent.ACTION_VIEW.equals(action) && data != null) {
final String jobId = data.substring(data.lastIndexOf("/") + 1);
loadJobDetails(jobId);
}
}