【发布时间】:2019-11-19 00:01:44
【问题描述】:
通过在网络上搜索,我发现有不止一种方法可以通过邀请他人下载来分享我的应用程序。
我尝试了这段代码,它向用户显示了应用选择器窗格。
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "My subject");
intent.putExtra(Intent.EXTRA_TITLE, "My subject");
intent.putExtra(Intent.EXTRA_TEXT, "https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID);
startActivity(Intent.createChooser(intent, "Share App"));
当用户选择与 WhatsApp、Telegram、SMS、电子邮件等共享消息时,我必须在 Intent 中包含哪些信息才能正确显示消息?
例如,此代码将在 Telegram 中显示预览(带有突出显示的链接和预览图像),但在 WhatsApp 中不显示(它仅显示作为消息发送的纯文本):为什么?
我也试过这段代码,但它适用于电报,但不适用于 Whatsapp(它发送的消息只有一个附件,无法打开文本“无标题”):
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TITLE, "title test");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "subject test");
String shareMessage= "message test\n\n";
shareMessage = shareMessage + "https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID +"\n\n";
shareIntent.putExtra(Intent.EXTRA_TEXT, shareMessage);
shareIntent.putExtra(Intent.EXTRA_HTML_TEXT, "HTML " + shareMessage);
Uri imageUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
+ res.getResourcePackageName(R.drawable.testjpg) + '/'
+ res.getResourceTypeName(R.drawable.testjpg) + '/'
+ res.getResourceEntryName(R.drawable.testjpg));
Toast.makeText(this, imageUri.toString(), Toast.LENGTH_LONG).show();
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/jpg");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, getString(R.string.share)));
如何使其适用于 WhatsApp、Telegram、FB、电子邮件和其他纯文本(如 SMS)?
【问题讨论】:
-
@ManojPerumarath,没有。我尝试了一些代码,但仍然在whatsapp中没有出现图像...... Whatsapp以一种奇怪的方式处理通过意图的信息......相反,电报正确处理它
-
这很奇怪,尝试添加赏金,它会到达
标签: android android-intent uri share