如何在Github Pages中配置Android App Links实现应用自动跳转?
没问题,我帮你理清这个问题——其实你之前的核心误区是对Android App Links的host配置理解错了,而且没搞清楚Github Pages不同仓库类型的部署逻辑。咱们一步步来解决:
1. 先修复你的Intent Filter配置
你之前尝试把android:host改成带路径的https://myGithubUsername.github.io/appname是完全错误的,Android的host属性只能填纯域名(不能包含路径或协议)。正确的配置应该是这样:
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="myGithubUsername.github.io" android:pathPattern="/appname/groups/.*/join" /> </intent-filter>
重点注意:
- 必须加上
android:autoVerify="true",这是触发Android自动验证App Links的关键 host只保留域名myGithubUsername.github.io,路径部分完全交给pathPattern处理
2. 正确放置assetlinks.json文件
Android App Links要求这个文件必须放在域名的根目录(也就是https://myGithubUsername.github.io/.well-known/assetlinks.json),这和你的应用关联的子路径/appname/...不冲突,因为验证只看域名,路径匹配是Intent Filter的工作。
根据你使用的Github Pages仓库类型,分两种情况处理:
情况A:你用的是「用户/组织仓库」(仓库名是myGithubUsername.github.io)
直接在这个仓库的根目录创建.well-known文件夹,然后在里面新建assetlinks.json,内容格式如下:
[ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.your.app.package.name", // 替换成你的应用包名 "sha256_cert_fingerprints": ["你的应用签名的SHA256指纹"] // 替换成你的签名指纹 } } ]
提交并推送代码后,Github Pages会自动部署,此时https://myGithubUsername.github.io/.well-known/assetlinks.json就能被正常访问了。
情况B:你用的是「项目仓库」(部署后路径是myGithubUsername.github.io/appname)
项目仓库的内容只会部署到子路径,无法在域名根目录放置文件,所以你需要单独创建/维护myGithubUsername.github.io这个用户仓库,在它的根目录按照上面的方式创建.well-known/assetlinks.json。这个用户仓库不需要有其他内容,只需要这个文件就行——它的作用就是提供域名根目录下的验证文件。
3. 验证配置是否生效
配置完成后,你可以用两种方式验证:
- 打开Android Studio的「App Links Assistant」(路径:Tools > App Links Assistant),选择「Open Digital Asset Links File Generator」,输入你的域名和应用信息,生成文件后确认和你上传的一致,然后点击「Check Connection」验证是否通过。
- 手动访问Google的验证接口:
https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://myGithubUsername.github.io&relation=delegate_permission/common.handle_all_urls,如果返回包含你应用信息的结果,说明验证通过。
等验证通过后,用户点击https://myGithubUsername.github.io/appname/groups/xxx/join这类链接时,只要你的应用已安装,就会自动打开应用,不会再弹出选择器了。
内容的提问来源于stack exchange,提问作者Minas Mina

