Как поделиться изображением с помощью Branch-io по электронной почте в Android
Я использую Branch-io для обмена контентом, таким как текст, изображение (из URL) и ссылка. Я все сделал и прекрасно работаю с Facebook, WhatsApp. Я имею в виду, что я также могу поделиться текстом и ссылкой на Gmail, но не могу прикрепить изображение.
Эта проблема возникла только с Gmail.
Вот мой код:
BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
.setCanonicalIdentifier("item/12345")
.setTitle(title)
.setContentDescription(message)
.setContentImageUrl(image)
//.setContentImageUrl(Uri.parse("file://"+downloadedImagePath).toString())
.setContentIndexingMode(BranchUniversalObject.CONTENT_INDEX_MODE.PUBLIC);
LinkProperties linkProperties = new LinkProperties()
.addControlParameter("$always_deeplink", "true")
.setFeature("sharing")
.setStage("1");
String body = "Text Message";
ShareSheetStyle shareSheetStyle = new ShareSheetStyle(mContext, mContext.getResources().getString(R.string.app_name), body)
.setAsFullWidthStyle(true)
.setSharingTitle("Share With");
branchUniversalObject.showShareSheet((Activity) mContext,
linkProperties,
shareSheetStyle,
new Branch.BranchLinkShareListener() {
@Override
public void onShareLinkDialogLaunched() {
LogUtils.v("Share Link", "Launched");
}
@Override
public void onShareLinkDialogDismissed() {
LogUtils.v("Share Link", "Dismissed");
}
@Override
public void onLinkShareResponse(String sharedLink, String sharedChannel, BranchError error) {
LogUtils.v("Share Link", sharedLink);
}
@Override
public void onChannelSelected(String channelName) {
LogUtils.v("Share Link", channelName);
}
});
}
}, false);
Доводим до вашего сведения, этот код прекрасно работает с Facebook, WhatsApp, но не с Gmail (только проблема, не прикрепляя изображение).
Если кто-то знает, пожалуйста, дайте мне знать, что я делаю неправильно и как это можно сделать.
Заранее спасибо.
1 ответ
Я только что проверил это в нашем тестовом приложении, и все работает правильно, когда вы делитесь с Gmail. Вот моя тестовая ссылка: https://appsolutely.test-app.link/Mw2qFHRMxJ
Всякий раз, когда вы делитесь ссылкой через showShareSheet()
вся информация филиала универсального объекта (BUO) прикреплена к ссылке. Если вы продолжите делиться ссылками для одних и тех же данных, но по разным каналам, единственная разница между ссылками для каждого канала будет "~channel": "Gmail"
,
Глядя на ваш код, я не вижу проблем, с которыми вы можете столкнуться при присоединении URL-адреса изображения, так как вы звоните .setContentImageUrl(image)
для объекта BUO, поэтому проблема может быть в том, как вы тестируете. После того, как вы поделились ссылкой через Gmail, я бы предложил вставить ее в строку URL вашего браузера и добавить следующий параметр запроса: ?debug=true
,
Например: https://appsolutely.test-app.link/Mw2qFHRMxJ?debug=true
Затем вы можете просмотреть все данные, которые содержит ссылка на открывшейся странице. Если вы видите, что данные содержат "$og_image_url"
с правильным URL-адресом это означает, что изображение действительно было прикреплено, как показано в примере ниже для моей тестовой ссылки https://appsolutely.test-app.link/Mw2qFHRMxJ