Ich versuche, App Links arbeiten auf meiner Android-App, aber bin nicht in der Lage, herauszufinden, warum es nicht funktioniert.Android App Links funktioniert nicht
ich folgende Intent-Filter-Tag mein Manifest-Datei hinzugefügt haben:
<activity android:name=".MyActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="www.mywebsite.com"
android:pathPattern="(/[a-z]{2}|)/foo/bar" />
</intent-filter>
<activity android:name=".MyActivity">
In MyActivity.java
ich habe:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
handleIntent(getIntent());
}
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleIntent(intent);
}
private void handleIntent(Intent intent){
String appLinkAction = intent.getAction();
Uri appLinkData = intent.getData();
if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
//Do something here
}
}
Ich habe auch die automatisch generierten Digital-Asset-Links hinzugefügt Datei meine Webseite. Es zeigt sich ganz gut an https://www.mywebsite.com/.well-known/assetlinks.json
Die folgende Bestätigungs-Link checkt auch: https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://www.mywebsite.com&relation=delegate_permission/common.handle_all_urls
ich ein signiertes apk auf einem Gerät läuft Android 7.0 installiert haben. Nach der Installation kann ich in den Protokollen meines Webservers sehen, dass das Gerät die Datei assetslinks.json erfolgreich erhält.
Als Ergebnis adb shell dumpsys package d
Lauf zeigt folgendes:
App linkages for user 0:
Package: com.myapp.myapp
Domains: www.mywebsite.com
Status: always : 20000001f
ich eine E-Mail an mich mit dem Link gesendet https://www.mywebsite.com/foo/bar
und es öffnet nur den Dialog App Chooser, ohne auch nur meine Anwendung hindeutet. Es zeigt nur Browseroptionen an.
Durch Klicken auf einen Link, z. B. maps.google.com
, wird die Google Maps App direkt geöffnet. Was zu der Annahme führt, dass das Problem nichts mit den Einstellungen des Telefons zu tun hat.
Was fehlt mir?
Suchen Sie nach 'SingleHostAsyncVerifier' im Logcat während der App-Installation. Was sind die Protokolle? –
Wenn alles gut aussieht, versuchen Sie, das 'pathPattern'-Attribut zu entfernen/zu vereinfachen, da es solche regexp-Zeichen möglicherweise nicht erkennt: https://developer.android.com/guide/topics/manifest/data-element.html –
@SimonMarquis' SingleHostAsyncVerifier 'gibt' -> true' für meine Website zurück. – mickael