cocos creator android项目接入deeplink问题总结

1: deeplink接入文档:developer.android.google.cn/codelabs/an... 2: deeplink验证文档:developer.android.com/training/ap... 3: deeplink官方git文档:github.com/android/dee...

大体流程文档里说的很详细,下面只做简单描述,后面会相似说下遇到的问题。注意:电脑和手机最好都开着vpn,下列操作好像会访问google那边。

一:如果你所需要用到的链接是deeplinkdemo.demo.com,那么需要在你所需要使用的域名下生成assetlinks.json文件,路径是deeplinkdemo.demo.com/.well-known..., 这里需要注意的是,需要支持https,并且需要能直接访问到这个文件。 文件内容大体如下

css 复制代码
[  {    "relation": [      "delegate_permission/common.handle_all_urls"    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.deeplinkdemo.demo.gp",
      "sha256_cert_fingerprints": [
        "8B:D4:E2:D7:66:50:6C:51:F1:5T:A7:37:42:3B:D8:EB:D4:89:AE:44:C2:28:70:90:AF:E4:E4:4F:81:09:6E:87",
      ]
    }
  }
]

二:然后在你的az项目里增加

ini 复制代码
<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:host="deeplinkdemo.demo.com" android:scheme="http"/>
</intent-filter>
<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:host="deeplinkdemo.demo.com" android:scheme="https"/>
</intent-filter>

三:打包之后可以用 // 重新校验链接 adb shell pm verify-app-links --re-verify com.deeplinkdemo.demo.gp // 获取app可用状态 adb shell pm get-app-links com.deeplinkdemo.demo.gp 这一步会看到如下信息:

ruby 复制代码
  com.lulingame.qnss.gp:
    ID: 4df27cb7-1eb4-4ad8-a5f1-9817a25b5f77
    Signatures: [8B:D4:E2:D7:66:50:6C:51:F1:5T:A7:37:42:3B:D8:EB:D4:89:AE:44:C2:28:70:90:AF:E4:E4:4F:81:09:6E:87]
    Domain verification state:
      deeplinkdemo.demo.com: verified
    User 0:
      Verification link handling allowed: true
      Selection state:
        Disabled:
          deeplinkdemo.demo.com

// 模拟启动applink adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "deeplinkdemo.demo.com" 到此为止如果能正常通过命令行打开deeplink 说明成功了大半。 四:后续问题反馈,我按照上面的官方不走弄完之后,命令行模拟也没问题,但是在记事本里点击链接deeplinkdemo.demo.com 后不能正常调转到应用。后来查了一下,问题有一下几点。

1: 因为这个项目接入了第三方的sdk 所以《二》中增加的内容需要写在sdk的Activity中 并且需要增加

ini 复制代码
<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

这一步改完之后,在记事本里点击 deeplinkdemo.demo.com 可以跳转了,但是应用打开后会闪退,到这一部可以确定deeplink是可用的,但是因为某种原因应用闪退崩溃了,接下来查找崩溃原因。

2: 处理闪退问题我这里的报错找不到了,问题是因为用到的deeplink,但是项目中没有增加google play的套件导致的,报错全都在 com.google.gms上。 需要手动引入下。

arduino 复制代码
// google基础套件
implementation 'com.google.android.gms:play-services-location:21.3.0'

经过这一步,调转后可以正常出现启动页,但是过一会应用还是会闪退。

3:处理这个问题:我的抓到的主要报错如下:

主要崩溃在:E ActivityRecord{64a3d20 u0 com.lulingame.qnss.gp/org.cocos2dx.javascript.AppActivity t92}#1668 id info cannot be read from 'ActivityRecord{64a3d20 u0 com.lulingame.qnss.gp/org.cocos2dx.javascript.AppActivity t92}#1668' 查了下这里是因为deeplink调转后 轮训activity 找到主要的activity导致的。 在 org.cocos2dx.javascript.AppActivity 下加入

android:launchMode="singleTask" android:taskAffinity="com.deeplinkdemo.demo.gp" 即可

相关推荐
Thomas游戏开发25 分钟前
Cocos Creator 面试技巧分享
面试·微信小程序·cocos creator
VaJoy7 天前
Cocos Creator Shader 入门 ⒀ —— UBO 内存布局策略
cocos creator
成长ing1213816 天前
cocos creator 3.x shader 流光
前端·cocos creator
VaJoy17 天前
Cocos Creator Shader 入门 ⑾ —— 光照跟随
cocos creator
成长ing1213818 天前
闪白效果
前端·cocos creator
冷水金枪鱼19 天前
Light2D光照系统(基于CocosCreater引擎3.x/2.x)
cocos creator
VaJoy21 天前
Cocos Creator Shader 入门 ⑽ —— 拖尾效果的实现
cocos creator
VaJoy1 个月前
Cocos Creator Shader 入门 ⑼ —— 溶解动画
cocos creator
VaJoy2 个月前
Cocos Creator Shader 入门 ⑺ —— 图层混合样式的实现与 Render Texture
cocos creator