我正在使用whatsapp共享一些数据,当用户从whatsapp按下深层链接时,我想在我的应用中打开一个特定的活动
我有以下架构
myapp://openapp?type=banner&id=10
whatsapp将该链接作为普通文本而非网址共享,并且当用户按下时我也无法打开我的应用
任何人都可以帮忙吗?
修改
这是我的分享方法
public static void openWhatsApp(Context mContext) {
PackageManager pm = mContext.getPackageManager();
try {
Intent whatsAppIntent = new Intent(Intent.ACTION_SEND);
whatsAppIntent.setType("text/plain");
String text = "myapp://openapp?type=banner&id=10";
PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA);
whatsAppIntent.setPackage("com.whatsapp");
whatsAppIntent.putExtra(Intent.EXTRA_TEXT, text);
mContext.startActivity(Intent.createChooser(whatsAppIntent, mContext.getString(R.string.share_with)));
} catch (NameNotFoundException e) {
Toast.makeText(mContext, "WhatsApp not Installed", Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:3)
我不知道是否可能。 WhatsApp可能只突出显示某些协议(即http,https)的链接。在这种情况下,如果您依赖此功能,则可以进行解决方法:
让用户分享指向http://your-server.com/forward?type=banner&id=10
在your-server.com
上,您将forward
文件中的用户(或通过服务器配置)重定向到myapp://openapp?type=banner&id=10
。
当然这不是很好,但浏览器可以处理这些应用程序链接。这不会很好,因为用户将首先打开浏览器来处理您的http链接,用户将从该链接重定向。
答案 1 :(得分:0)
我遇到的问题完全相同。 使用Android App-Links似乎是正确的解决方案。 来自文档: https://developer.android.com/training/app-links/verify-site-associations.html#request-verify