我有以下代码创建深层链接 -
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 它也不起作用 - 深层链接在我的应用程序内部停止工作,但在它外部工作。
如何解决此问题并允许使用我自己的应用程序包发送深层链接?