Android 使用 whatsapp 分享深度 link url 并在点击深度时打开我的应用程序 link
Android share deep link url using whatsapp and open my app when click deep link
我正在使用 whatsapp 共享一些数据,我想在用户从 whatsapp
按下 link 时在我的应用程序中打开一个特定的 activity
我有以下架构
myapp://openapp?type=banner&id=10
whatsapp 分享 link 作为普通文本而不是 url 而且当用户按下它时我无法打开我的应用程序
有人可以帮忙吗?
编辑
这是我的分享方式
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();
}
}
不知道有没有可能。可能是 WhatsApp 仅使用某些协议(即 http、https)突出显示 links。在这种情况下,如果您依赖于此功能,则可以寻求解决方法:
让用户分享一个link到http://your-server.com/forward?type=banner&id=10
在 your-server.com
上,您将 forward
文件中的用户(或通过服务器配置)重定向到 myapp://openapp?type=banner&id=10
。
当然这并不漂亮,但浏览器可以处理这些应用程序-link。这不会很漂亮,因为用户首先会打开浏览器来处理您的 http link,用户将从中重定向。
我在 atm 上遇到的问题完全相同。
使用 Android App-Links 似乎是正确的解决方案。
从文档:
https://developer.android.com/training/app-links/verify-site-associations.html#request-verify
深度links与applinks的区别:
- A deep link 是一个意图过滤器,允许用户在您的 Android 应用中直接输入特定的 activity。 (您尝试使用这个,但 Whatsapp 无法将其识别为 link)
- 一个 Android 应用程序 Link 是一个基于您的网站 URL 的深层 link 已被验证属于到您的网站。 (这是一个普通的http(s)link,应该是到处都这样识别)
我正在使用 whatsapp 共享一些数据,我想在用户从 whatsapp
按下 link 时在我的应用程序中打开一个特定的 activity我有以下架构
myapp://openapp?type=banner&id=10
whatsapp 分享 link 作为普通文本而不是 url 而且当用户按下它时我无法打开我的应用程序
有人可以帮忙吗?
编辑
这是我的分享方式
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();
}
}
不知道有没有可能。可能是 WhatsApp 仅使用某些协议(即 http、https)突出显示 links。在这种情况下,如果您依赖于此功能,则可以寻求解决方法:
让用户分享一个link到http://your-server.com/forward?type=banner&id=10
在 your-server.com
上,您将 forward
文件中的用户(或通过服务器配置)重定向到 myapp://openapp?type=banner&id=10
。
当然这并不漂亮,但浏览器可以处理这些应用程序-link。这不会很漂亮,因为用户首先会打开浏览器来处理您的 http link,用户将从中重定向。
我在 atm 上遇到的问题完全相同。 使用 Android App-Links 似乎是正确的解决方案。 从文档: https://developer.android.com/training/app-links/verify-site-associations.html#request-verify
深度links与applinks的区别:
- A deep link 是一个意图过滤器,允许用户在您的 Android 应用中直接输入特定的 activity。 (您尝试使用这个,但 Whatsapp 无法将其识别为 link)
- 一个 Android 应用程序 Link 是一个基于您的网站 URL 的深层 link 已被验证属于到您的网站。 (这是一个普通的http(s)link,应该是到处都这样识别)