2017-03-02 3 views
2
Android deep linking is not working 
=================================== 
Android link:-notification://id=notificationid 

1: -In manifestAndroid DeepLinking funktioniert nicht

 <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" /> 
        <category android:name="android.intent.category.BROWSABLE" /> 

        <data 
         android:host="id" 
         android:scheme="notification" /> 
       </intent-filter>  

2: -und Codierung Seite

@Override 
     protected void onResume() { 
      super.onResume();   
      Intent intent = getIntent(); 
      String string=intent.getAction(); 
      Uri data = intent.getData(); 
      Log.d("hello","cgbdsuyfdkv"); 
     } 

aber seine nicht funktioniert bitte jede Stelle mir helfen !!! !!

+0

wird Ihr Code zum ersten Mal ausgeführt? –

+0

Ja, führe meinen Code und meine URL so aus (Benachrichtigung: // ID = Benachrichtigungs-ID), aber kann es nicht funktionieren –

+0

Aber zum zweiten Mal konnte man die Benachrichtigungs-ID nicht aktualisieren? Recht –

Antwort

0

Sie können einfach ändern Sie Ihre url

Android link:-notification://id=notificationid instead of 
Android link:-notification://page?id=notificationid //page is host name 
I tried a lot and find out this is working for me. 
  1. manifest Code

      <intent-filter> 
          <action android:name="android.intent.action.VIEW" /> 
          <category android:name="android.intent.category.LAUNCHER" /> 
          <category android:name="android.intent.category.BROWSABLE" /> 
    
          <data 
           android:host="page" 
           android:scheme="notification" /> 
         </intent-filter>  
    

2 .java Code #get Ihre Benachrichtigungs-ID hier

Intent intent = getIntent(); 
    String string = intent.getAction(); 
    Uri data = intent.getData(); 
    if (data != null) { 
     String path = data.getPath(); 
     String path1 = data.getPath(); 
     providerUrl = intent.getData().toString(); 
     UrlQuerySanitizer sanitizer = new UrlQuerySanitizer(); 
     sanitizer.setAllowUnregisteredParamaters(true); 
     sanitizer.parseUrl(providerUrl); 
     String id = sanitizer.getValue("id"); 
     if (id != null) 
      Log.d("notification id", id); 
    } 
+0

ja ich stimme zu mein Android-Link: - ** Benachrichtigung: // ID = Benachrichtigungs-ID ** ist nicht korrekt. Wenn ich URL ändern ** Benachrichtigung: // Hostname? ID = Benachrichtigungs-ID ** es funktioniert gut –

0

Ich glaube, Sie Intent Filter unvollständig

<!-- To open app using link --> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW"></action> 
     <category android:name="android.intent.category.DEFAULT"></category> 
     <category android:name="android.intent.category.BROWSABLE"></category> 
     <data android:scheme="http" 
       android:host="yourdomain.com" 
       android:pathPrefix="/someurlparam"> 
     </data> 
    </intent-filter> 
0

1. Schritt:

<intent-filter> 
    <data android:scheme="your_uri_scheme" /> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
</intent-filter> 

2. Schritt:

Uri data = this.getIntent().getData(); 
if (data != null && data.isHierarchical()) { 
    String uri = this.getIntent().getDataString(); 
    Log.i("MyApp", "Deep link clicked " + uri); 
} 
0

hinzufügen onNewIntent() Methode zu Ihrem Activity und dann Absicht Objekt verwenden, die ist variabel in OnNewintent() Methode, die Aktualisierung hat ted-Methode.

onNewIntent() als Einstiegspunkt bedeutete für singleTop oder singleTask Aktivitäten, die schon woanders im Stapel laufen und daher nicht onCreate() aufrufen können. Aus Sicht des Lebenszyklus von Aktivitäten ist es daher erforderlich, onPause() vor onNewIntent() anzurufen. Ich empfehle Ihnen, Ihre Aktivität neu zu schreiben, um diese Listener nicht innerhalb von onNewIntent() zu verwenden. Zum Beispiel die meiste Zeit meine onNewIntent() Methoden sieht einfach wie folgt aus:

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
//use this intent object to get notificationid for second time 

}