l***@processon.com
l***@processon.com
  • 发布:2025-12-24 16:02
  • 更新:2025-12-25 14:21
  • 阅读:69

uniappx 安卓接收从微信“从其他应用中打开”的intent 始终是null

分类:uni-app x

想实现 安卓接收从微信“从其他应用中打开”的音频文件:

其中插件配置是:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<application>  
    <!-- 分享入口 Activity -->  
    <activity  
        android:name="io.dcloud.uniapp.UniAppActivity"  
            android:exported="true"  
            android:launchMode="singleTop"  
            android:taskAffinity="com.processon.tingtu"  
            >  
        <!-- 分享单文件 -->  
        <intent-filter>  
            <action android:name="android.intent.action.SEND" />  
            <category android:name="android.intent.category.DEFAULT" />  
            <data android:mimeType="audio/*" />  
        </intent-filter>  
        <!-- 打开文件(VIEW) -->  
        <intent-filter>  
            <data android:scheme="file" />  
            <data android:scheme="content" />  
            <action android:name="android.intent.action.VIEW" />  
            <category android:name="android.intent.category.DEFAULT" />  
            <category android:name="android.intent.category.BROWSABLE" />  
            <data android:mimeType="audio/*" />  
        </intent-filter>  

    </activity>  

</application>  

</manifest>

1、分享菜单中可以看到我的app,但是微信选择“从其他应用打开” 无论如何都获取不到intent。
2、但在系统录音中可以获取到。
3、另外,我不管怎么尝试 onCreate 也不会触发只能在onResume中触发,这样我也无法实现冷启动导入文件。
4、还尝试过UniActivityCallback的onActivityResult 也不触发。

最后结论是:只有系统录音软件分享过来的可以读取到,微信不行。
请问如何解决这个问题?

2025-12-24 16:02 负责人:DCloud_Android_DQQ 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-app x技术交流群 ) 咨询

根据您的描述和知识库内容,问题在于微信"从其他应用打开"使用的是特殊intent机制,而非标准Android分享流程。关键点如下:

  1. onCreate不触发原因:当应用已在后台运行时,新intent不会触发onCreate,而是通过onNewIntent传递。uni-app x需在页面中监听onNewIntent生命周期(参考文档)。

  2. 微信特殊处理:知识库明确指出"系统分享和微信SDK分享在Android上有些差异",微信的"从其他应用打开"可能未使用标准SEND/VIEW intent。需改用微信SDK插件处理。

  3. 解决方案

    • 在manifest中确认intent-filter配置正确(已包含audio/*)
    • 在页面中实现onNewIntent方法接收intent
    • 必须使用微信SDK插件:插件市场有微信分享插件,可解决微信特有分享逻辑问题
  4. 补充说明:系统录音能获取是因为它使用标准Android分享机制,而微信有自己的实现逻辑。

建议优先集成微信SDK插件,并检查onNewIntent实现是否符合uni-app x生命周期规范

内容为 AI 生成,仅供参考
l***@processon.com

l***@processon.com (作者)

已解决,文档真是太不详细的,起码给一些功能事例啊,目前高级插件开发只能给会安卓开发的人用。

  • DCloud_UNI_OttoJi

    什么问题,文档那一块需要修改?

    2025-12-25 16:21

  • l***@processon.com (作者)

    回复 DCloud_UNI_OttoJi:您好,主要是 UTSAndroidHookProxy的使用方法事例,我实际用到的是hello-uts中的 “application.registerActivityLifecycleCallbacks” 通过这个方法可以注册顶层active的回调,但是文档中没有对这个的描述,只可以在仓库代码中看到,并且没有注释描述。这不就是懂安卓的人才能看懂吗,这个方法后续逻辑:

    ActivityLifecycleCallbacks,也没有出现在文档里,我甚至不理解为什么要引入 “android.app.Application.ActivityLifecycleCallbacks”,是这个意思。

    2025-12-25 16:56

  • DCloud_UNI_OttoJi

    回复 l***@processon.com: 感谢反馈,我和相关同事沟通一下

    2025-12-25 17:51

要回复问题请先登录注册