# 需适配的组件汇总

- 多端框架是基于与小程序同源的技术实现，大部分的小程序组件在多端应用中均可使用，但的确有部分的组件因为产品载体已经变成为 App，无法再支持的，开发者需对这部分的组件进行兼容性处理

## 一、需开发者进行适配兼容的组件

- 下方功能需使用新的接口或者组件进行实现

| 名称 | 功能说明 |备注 |
| -- | -- |-- |
| [button](/miniprogram/dev/component/button.md) | 按钮 |支持，但 open-type 涉及的微信开放能力均不支持 |
| [image](/miniprogram/dev/component/image.md)  | 图片 |支持，但是长按识别的功能尚不支持 |

### 1、button

- [button](/miniprogram/dev/component/button.md)  组件中 open-type 涉及的微信开放能力均不支持

| open-type | 功能说明 |兼容备注 |
| -- | -- |-- |
| contact| 打开客服会话 |• 在 App 中不支持使用小程序客服能力，开发者可使用微信客服功能代替，查看接口详情[wx.miniapp.openCustomerServiceChat](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/openCustomerServiceChat) |
| share | 转发 |• 在 App 中如需使用微信分享能力，可使用 [wx.miniapp.shareImageMessage](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/shareImageMessage)、[wx.miniapp.shareMiniProgramMessage](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/shareMiniProgramMessage)、[wx.miniapp.shareTextMessage](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/shareTextMessage)、[wx.miniapp.shareWebPageMessage](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/shareWebPageMessage)、[wx.miniapp.shareVideoMessage](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/shareVideoMessage) |
| getPhoneNumber| 获取手机号 |• 在 App 中可使用新组件[本机号码一键登录](auth/phoneOneClickLogin) 实现|
| getUserInfo| 获取用户信息 |• 在 App 中可使用新接口 [wx.miniapp.login](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/login) 或者 [wx.weixinAppLogin](/miniprogram/dev/platform-capabilities/miniapp/api/auth/wx.weixinAppLogin) 实现获取用户的头像和昵称|
| chooseAvatar| 获取用户头像 |• 在 App 中可使用新接口 [wx.miniapp.login](/miniprogram/dev/platform-capabilities/miniapp/api/miniapp/login) 或者 [wx.weixinAppLogin](/miniprogram/dev/platform-capabilities/miniapp/api/auth/wx.weixinAppLogin) 实现获取用户的头像和昵称|
| launchApp| 打开 App |• 在 App 中暂未支持打开另一个 App，后续会提供新的接口实现该功能|
| openSetting| 打开授权设置页 |• 在 App 中使用 wx.openAppAuthorizeSetting 代替|
| feedback| 打开「意见反馈」页面 |• 在 App 中不支持打开「意见反馈」页面|

- 补充：onShareAppMessage 在多端的使用情况可查看[onShareAppMessage](onShareAppMessage)

### 2、image

- [image](/miniprogram/dev/component/image.md)  组件中 show-menu-by-longpress 的功能（长按图片显示发送给朋友、收藏、保存图片、搜一搜、打开名片/前往群聊/打开小程序）暂不支持

### 3、web-view

- 从 iOS >= 1.0.17，Android >= 1.0.8 开始，web-view 打开 h5 获取到的 UA 将不再带有`微信`相关的标识，同时新增了 `SAAASDK` 用于表示多端的运行环境。
- 如开发者在多端应用中的 h5 中使用到了 jssdk 用于与小程序交互，需将 jssdk 升级至 [1.6.2](https://res.wx.qq.com/open/js/jweixin-1.6.2.js)
- 补充说明 1：在多端应用中通过 web-view 打开 H5，无需在平台中配置业务域名，直接可打开
- 补充说明 2：Skyline 暂不支持 web-view 组件，建议承载 web-view 的页面单独配置 `"renderer": "webview"`，详情可查看[文档](/miniprogram/dev/framework/runtime/skyline/component.md)
- jssdk 支持的接口情况可查看

#### 小程序相关的接口

| 接口名                      | 说明                 | 
| --------------------------  | -------------------- | 
| wx.miniProgram.navigateTo   | 参数与小程序接口一致 | 
| wx.miniProgram.navigateBack | 参数与小程序接口一致 | 
| wx.miniProgram.switchTab    | 参数与小程序接口一致 | 
| wx.miniProgram.reLaunch     | 参数与小程序接口一致 | 
| wx.miniProgram.redirectTo   | 参数与小程序接口一致 | 
| wx.miniProgram.postMessage  | 向小程序发送消息，会在以下特定时机触发组件的 message 事件：小程序后退、组件销毁、分享、复制链接（[2.31.1](/miniprogram/dev/framework/compatibility.md)）     | 
| wx.miniProgram.getEnv       | 获取当前环境         | 

#### 其他 JSSDK 接口

| 接口模块             | 接口说明             | 具体接口           | 多端应用 支持情况 |
| -------------------- | -------------------  | ------------------ | ---------------- |
| 判断客户端是否支持 js |                      | checkJSApi         | Android 支持 |
| 图像接口             | 拍照或上传           | chooseImage        | Android 支持  |
|                      | 预览图片             | previewImage       |   |
|                      | 上传图片             | uploadImage        |   |
|                      | 获取本地图片         | getLocalImgData    |   |
| 音频接口             | 开始录音             | startRecord        |   |
|                      | 停止录音             | stopRecord         |   |
|                      | 监听录音自动停止     | onVoiceRecordEnd   |   |
|                      | 播放语音             | playVoice          |   |
|                      | 暂停播放             | pauseVoice         |   |
|                      | 停止播放             | stopVoice          |   |
|                      | 监听语音播放完毕     | onVoicePlayEnd     |   |
|                      | 上传接口             | uploadVoice        |   |
|                      | 下载接口             | downloadVoice      |   |
| 智能接口             | 识别音频             | translateVoice     |   |
| 设备信息             | 获取网络状态         | getNetworkType     | Android支持 |
| 地理位置             | 使用内置地图打开地点 | openLocation       |   |
|                      | 获取地理位置         | getLocation        | Android支持（需在 project.miniapp.json 中勾选 扩展 LBS SDK ）  |
| 摇一摇周边           | 开启ibeacon          | startSearchBeacons |   |
|                      | 关闭ibeacon          | stopSearchBeacons  |   |
|                      | 监听ibeacon          | onSearchBeacons    |   |
| 微信扫一扫           | 调起微信扫一扫       | scanQRCode         |  |
| 微信卡券             | 拉取使用卡券列表     | chooseCard         |   |
|                      | 批量添加卡券接口     | addCard            |   |
|                      | 查看微信卡包的卡券   | openCard           |   |
| 长按识别             | 小程序圆形码         | 无                 |   |

### 4、video

在 App 中使用 video 组件实现投屏的功能时，需要申请组播权限，相关的操作如下：

- 使用苹果开发者主账号访问 [https://developer.apple.com/contact/request/networking-multicast](https://developer.apple.com/contact/request/networking-multicast) 申请组播权限
- 大概 3 天左右查看开发者账号，会多一个 Additional Capabilities，然后勾选 Multicast Networking 权限
- 重新生成描述文件，下载新的描述文件；并且使用新的描述文件重新打包 IPA 即可

#### 注意

- Android 端使用该组件，依赖 Media SDK,需前往 project.miniapp.json 中勾选扩展 Media SDK 
- iOS 端使用该组件，依赖 video 和 audio 这两个扩展 SDK，都需要勾上

![](https://res8.wxqcloud.qq.com.cn/wxdoc/8db92bda-38f9-4dc3-b4f0-dbb0ac18021e.png)

## 二、尚未支持的组件

- 包含暂无计划支持和已在开发中的接口，详情可查看[组件总览](component)
