uniapp如何设置才能被其他app分享列表找到?

在uniapp开发的应用中,如何配置才能让应用出现在其他App的分享列表中?比如微信、QQ等App分享时能识别到我的应用作为接收方。需要设置哪些原生平台的参数或清单文件?iOS和Android的配置是否有区别?

2 回复

在manifest.json中配置App分享功能,添加intent-filter,设置action为android.intent.action.SEND,并声明支持的文件类型(如text/plain)。同时确保应用已上架应用市场。


要让你的 UniApp 应用出现在其他应用的分享列表中,需要配置分享功能,并确保应用信息能被系统识别。以下是关键步骤:

1. 配置 App 分享能力(Manifest.json)

manifest.json 文件中设置 uni-app 的分享参数,声明应用支持被分享:

{
  "name": "你的应用名称",
  "appid": "__UNI__XXXXXX",
  "description": "应用描述",
  "versionName": "1.0.0",
  "versionCode": "100",
  "transformPx": false,
  /* 5+ App 特有相关 */
  "app-plus": {
    "usingComponents": true,
    "nvueStyleCompiler": "uni-app",
    "compilerVersion": 3,
    "splashscreen": {
      "alwaysShowBeforeRender": true,
      "waiting": true,
      "autoclose": true,
      "delay": 0
    },
    /* 关键设置:模块配置 */
    "modules": {
      "Share": {}
    },
    /* 分发平台配置 */
    "distribute": {
      "android": {
        "permissions": [
          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
          "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
          "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"
        ]
      },
      "ios": {},
      "sdkConfigs": {
        "share": {
          // 可配置微信、QQ等分享SDK
        }
      }
    }
  }
}

2. 实现分享接收页面

创建一个页面用于处理其他应用分享过来的内容,例如 share.vue

<template>
  <view>
    <text>分享内容:{{ shareInfo }}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      shareInfo: ''
    }
  },
  onLoad(options) {
    // 接收其他App分享的数据
    if (options.text) {
      this.shareInfo = decodeURIComponent(options.text)
    }
  }
}
</script>

3. 配置 URL Scheme(iOS)和 Intent Filter(Android)

Android:

manifest.jsonapp-plus->distribute->android 中添加 intentFilters

"android": {
  "intentFilters": [
    {
      "action": "android.intent.action.VIEW",
      "data": [
        {
          "scheme": "你的应用Scheme",
          "host": "share",
          "pathPrefix": "/"
        }
      ],
      "category": [
        "android.intent.category.BROWSABLE",
        "android.intent.category.DEFAULT"
      ]
    }
  ]
}

iOS:

manifest.jsonapp-plus->distribute->apple 中配置 urltypes

"ios": {
  "urltypes": [
    {
      "identifier": "com.yourcompany.yourapp",
      "scheme": "你的应用Scheme",
      "role": "Editor"
    }
  ]
}

4. 测试分享功能

  • 使用其他应用(如微信、浏览器)分享内容时,如果你的应用正确配置,会出现在分享列表中。
  • 确保应用已安装,且 URL SchemeIntent Filter 配置正确。

注意事项:

  • 应用名称和图标:系统分享列表会显示应用名称和图标,确保它们在 manifest.json 中设置正确。
  • 平台差异:Android 和 iOS 的配置方式不同,需分别设置。
  • 权限:Android 需要存储权限来接收文件分享。

通过以上配置,你的 UniApp 应用就能被其他应用识别并出现在分享列表中。

回到顶部