1

我正在實施購物應用程序。在產品被共享時,它應該發送動態鏈接,以便當用戶點擊它時,只在應用程序中打開。最後,我實現此功能。但是,當我從共享動態鏈接打開應用程序時,我正在獲取主頁而不是產品頁面。我需要有關獲取特定產品頁面而非打開購物主頁的幫助。 在這裏,我包括代碼。 AndroidManifest.xml中如何在Android應用程序中設置動態鏈接到特定活動

<activity android:name=".Postdetails"> 
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="MainActivity" /> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:host="postdetailsnew.com" android:scheme="https" 
      android:pathPattern=".*"/> 
     </intent-filter> 
</activity> 

PostDetails.java這裏PostDetails頁是單一的產品設計頁面或活動。在這方面,我寫了下面的代碼。

sharebutton.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
s="https://app_code.app.goo.gl/?link="+ProductLinkInBrowser+"&apn=com.example.maneesh.shop"; 
    Intent sendIntent = new Intent(); 
    sendIntent.setAction(Intent.ACTION_SEND); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, s); 
    sendIntent.setType("text/plain"); 
    startActivity(sendIntent); 
    } 
} 
FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()) 
    .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() { 
    @Override 
    public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) { 
    // Get deep link from result (may be null if no link is found) 
    Uri deepLink = null; 
    if (pendingDynamicLinkData != null) { 
    deepLink = pendingDynamicLinkData.getLink(); 
    FirebaseAppInvite invite=FirebaseAppInvite.getInvitation(pendingDynamicLinkData); 
         if(invite!=null){ 
          String invitationId=invite.getInvitationId(); 
         } 
        } 
       } 
      }) 
      .addOnFailureListener(this, new OnFailureListener() { 
       @Override 
       public void onFailure(@NonNull Exception e) { 
        Log.w("Heyy", "getDynamicLink:onFailure", e); 
       } 
      }); 

所以在這裏終於APP主網頁打開與動態鏈接而不是具體的產品頁面是shared.Please指導我實現這一目標。

回答

2

您需要解析動態鏈接的URL,並觸發一個意圖用戶發送到您的應用程序的右側部分。通常,您將在主要活動中設置動態鏈接偵聽器,並將從那裏路由到任何特定需求。

代碼中的deepLink變量將是您在動態鏈接中傳遞的URL,如http://yourshop.com/product/12345。你可以稱之爲deepLink.getPath()這將返回您產品/ 12345,再火和意圖爲,e.g:

String path = deepLink.getPath(); 
String[] parts = path.split("/") 
if (parts[0] == "product") { 
    Intent intent = new Intent(this, PostDetails.class); 
    intent.putExtra("productid", parts[1]); 
    startActivity(intent); 
} 
相關問題