Android端DeepLink跳转异常求助:已安装应用时仍跳转至PlayStore
嗨,我看你遇到了Android端DeepLink的头疼问题——iOS那边已经完美工作了:没装App跳商店,装了就直接打开App;但Android这边明明装了App,点DeepLink还是会跳去PlayStore,换了好多办法都没解决,太闹心了!结合你贴的AndroidManifest代码,我帮你梳理几个可能的原因和解决方向:
先检查App Link的域名验证:你已经在intent-filter里加了
android:autoVerify="true",这是Android 6.0+开启App Link的关键,但前提是你的域名https://sabjiking.in根目录或者.well-known目录下,必须部署正确的assetlinks.json文件,用来证明这个域名和你的App是关联的。如果这个文件配置错了(比如签名指纹不对、包名写错),系统验证不通过,App Link就会降级成普通DeepLink,系统可能还是会优先跳浏览器或PlayStore。你可以用Android Studio里的「App Links Assistant」(路径:Tools > App Links Assistant)来一键生成并验证这个文件,非常方便。用adb命令直接测试,排除外部因素:有时候浏览器的缓存、默认打开方式会干扰跳转结果,你可以试试用adb命令直接唤起App,看看能不能成功:
adb shell am start -a android.intent.action.VIEW -d "https://sabjiking.in/referral"如果这个命令能直接打开你的App,那问题大概率出在浏览器的设置或者跳转链接的触发方式上;如果还是不行,那肯定是App的配置有问题,得回头检查intent-filter。
检查Activity的配置细节:你的MainActivity设置了
launchMode="singleTask"和taskAffinity="",这个本身是没问题的,但要确保intent-filter里的action、category、data都完全匹配你的DeepLink。你现在的data配置是scheme="https"、host="sabjiking.in"、pathPrefix="/referral",和你的链接一致,这部分是对的,但有没有可能是签名的问题?比如你测试用的App签名和PlayStore上的签名不一致,导致系统识别不到是同一个App?清除缓存试试:有时候Play Store或者浏览器的缓存会搞鬼,明明App已经装了,系统还是认为没装。你可以试试清除Play Store的缓存(设置>应用>Play Store>存储>清除缓存),或者用Chrome的隐私模式打开链接,避免缓存影响。
排查第三方插件冲突:如果你用了Flutter的第三方DeepLink插件(比如url_launcher、deep_link等),要确保插件的配置没有覆盖你在AndroidManifest里的intent-filter,有些插件会自动生成配置,可能和你手动加的有冲突。
你可以按照上面的步骤一步步排查,先从assetlinks.json和adb测试入手,这两个是最常见的问题点。
内容来源于stack exchange

