У меня есть следующий код, создающий глубокую ссылку:
public class BranchIOUtils {
public static BranchUniversalObject createContentReference(Context context, MiniProductModel objectToPass) {
return new BranchUniversalObject()
// .setCanonicalIdentifier("content/12345")
.setTitle("ProductPage")
.setContentDescription(objectToPass.getProductParentFields().getShortDescription())
.setContentImageUrl(objectToPass.getProductsIndividualField().getPictureList().get(0))
.setContentIndexingMode(BranchUniversalObject.CONTENT_INDEX_MODE.PUBLIC)
.setLocalIndexMode(BranchUniversalObject.CONTENT_INDEX_MODE.PUBLIC)
.setContentMetadata(new ContentMetadata()
.addCustomMetadata("source", "TwoVerte Android")
.addCustomMetadata("version", "1.0")
.addCustomMetadata("type", "ProductPage")
.addCustomMetadata("VIId", objectToPass.getProductsIndividualField().getVerteItemId()));
}
public static LinkProperties createLinkProperties() {
return new LinkProperties()
.setFeature("ProductPage")
.setCampaign("ProductPage")
// .setStage("new user")
.addControlParameter("$desktop_url", "https://myverte.com/")
.addControlParameter("$fallback_url", "https://myverte.com/");
// .addControlParameter("custom_random", Long.toString(Calendar.getInstance().getTimeInMillis()));
}
public static void shareDeepLink (Context context, BranchUniversalObject branchUniversalObject, LinkProperties linkProperties, Branch.BranchLinkShareListener listener) {
ShareSheetStyle shareSheetStyle = new ShareSheetStyle(context, "Check this product!", "This stuff is awesome: ")
// .setCopyUrlStyle(ContextCompat.getDrawable(context, android.R.drawable.ic_menu_send), "Copy", "Added to clipboard")
// .setMoreOptionStyle(ContextCompat.getDrawable(context, android.R.drawable.ic_menu_search), "Show more")
.addPreferredSharingOption(SharingHelper.SHARE_WITH.FACEBOOK)
.addPreferredSharingOption(SharingHelper.SHARE_WITH.EMAIL)
// .addPreferredSharingOption(SharingHelper.SHARE_WITH.MESSAGE)
// .addPreferredSharingOption(SharingHelper.SHARE_WITH.HANGOUT)
// .addPreferredSharingOption(shareWith)
.setAsFullWidthStyle(true)
.setSharingTitle("Share With");
branchUniversalObject.showShareSheet((Activity) context, linkProperties, shareSheetStyle, listener);
}
Итак, моя проблема заключается в следующем -
У меня есть меню листа, которое я могу выбрать из многих вспомогательных приложений, чтобы поделиться своей информацией. Если я проверю что-нибудь, а не свое собственное приложение (которое имеет встроенную систему обмена сообщениями, похожую на WhatsApp), глубокая ссылка работает нормально, а referringParams
имеет допустимое значение, с которым я могу работать -
Но если я поделюсь им через систему обмена сообщениями в своем приложении, я ничего не получу...
Я предполагаю, что это как-то связано с перечислением SHARE_WITH
-
package io.branch.referral;
/**
* Define the Applications for the sharing the link with.
*/
public class SharingHelper {
/**
* <p>
* Defines the Application for sharing a deep link with.
* </p>
*/
public enum SHARE_WITH {
FACEBOOK("com.facebook.katana"),
FACEBOOK_MESSENGER("com.facebook.orca"),
TWITTER("com.twitter.android"),
MESSAGE(".mms"),
EMAIL("com.google.android.email"),
FLICKR("com.yahoo.mobile.client.android.flickr"),
GOOGLE_DOC("com.google.android.apps.docs"),
WHATS_APP("com.whatsapp"),
PINTEREST("com.pinterest"),
HANGOUT("com.google.android.talk"),
INSTAGRAM("com.instagram.android"),
WECHAT("jom.tencent.mm"),
SNAPCHAT("com.snapchat.android"),
GMAIL("com.google.android.gm");
private String name = "";
private SHARE_WITH(String key) {
this.name = key;
}
public String getAppName() {
return name;
}
@Override
public String toString() {
return name;
}
}
}
Как видите, я ограничен несколькими пакетами приложений на выбор, и я не могу указать свое собственное имя пакета приложений. Так что, если я прав - это проблема.
редактировать -
даже без SHARE_WITH это не работает - глубокая ссылка перестает работать внутри моего приложения, но работает снаружи.
Как я могу решить эту проблему и разрешить отправку глубокой ссылки с помощью моего собственного пакета приложения?