expo-plugin-app-checker
Version:
检测指定的App是否存在
88 lines (64 loc) • 1.77 kB
Markdown
用于检测设备上是否安装了指定的应用程序。
```bash
npm install expo-plugin-app-checker
yarn add expo-plugin-app-checker
```
将以下内容添加到 app.json 或 app.config.js:
```json
{
"expo": {
"plugins": [
"expo-plugin-app-checker"
]
}
}
```
如果需要检测特定应用,可以配置额外的URL Schemes:
```json
{
"expo": {
"plugins": [
[
"expo-plugin-app-checker",
{
"schemes": ["twitter", "instagram", "facebook", "linkedin"]
}
]
]
}
}
```
这会自动为iOS和Android配置所需的 `LSApplicationQueriesSchemes` 和 `queries`。
> iOS 下为 URI Scheme
> Android 下为 应用的包名(无需包含 '://')
```javascript
import * as AppChecker from 'expo-plugin-app-checker';
// 检查应用是否存在(Android 使用包名,iOS 使用 URL scheme)
AppChecker.checkAppExists('com.whatsapp')
.then(isExists => {
console.log('WhatsApp 是否存在:', isExists);
})
.catch(error => {
console.error('检查失败:', error);
});
```
检查设备上是否存在指定的应用程序。
- **packageNameOrScheme**:
- 在 Android 上,使用完整的包名(例如 `com.whatsapp`)
- 在 iOS 上,使用 URL scheme(例如 `whatsapp://`)
- **返回值**: 返回一个 Promise,解析为布尔值,表示应用程序是否存在。
- **Android**: 使用原生 PackageManager 来检测应用是否存在
- **iOS**: 使用 React Native 的 Linking.canOpenURL API 检测应用是否存在
- ✅ Android
- ✅ iOS
MIT