插件
应用可用性
@nativescript/app-availability
一个检查设备上是否安装了某个应用的插件。
安装
cli
npm install @nativescript/appavailability
使用 @nativescript/app-availability
TypeScript
// examples of what to pass:
// - for iOS: "maps://", "twitter://", "fb://"
// - for Android: "com.facebook.katana"
available('twitter://').then((avail: boolean) => {
console.log('App available? ' + avail)
})
打开应用(带网页回退)
要打开设备上安装的应用,请在 Utils
类上调用 openUrl()
方法。将应用的标识符 URL 传递给该方法。
以下代码异步检查设备上是否安装了 Twitter 移动应用。如果应用可用,则 openUrl()
会打开它。否则,openUrl()
会改为打开网站。
TypeScript
import { available } from '@nativescript/appavailability'
import { Utils } from '@nativescript/core'
const twitterScheme = 'twitter://'
available(twitterScheme).then((available) => {
if (available) {
// open in the app
Utils.openUrl(
twitterScheme +
(isIOS ? '/user?screen_name=' : 'user?user_id=') +
'eddyverbruggen'
)
} else {
// open in the default browser
Utils.openUrl('https://twitter.com/eddyverbruggen')
}
})
要同步检查应用的可用性,请使用 availableSync()
函数。
TypeScript
import { availableSync } from '@nativescript/appavailability'
import { Utils } from '@nativescript/core'
if (availableSync('twitter://')) {
Utils.openUrl(
'twitter://' +
(isIOS ? '/user?screen_name=' : 'user?user_id=') +
'eddyverbruggen'
)
} else {
Utils.openUrl('https://twitter.com/eddyverbruggen')
}
确定应用的正确标识符。
Android
:搜索 Play 商店并使用 URL 中的 ID。对于 Twitter,它是com.twitter.android
,因为 URL 是https://play.google.com/store/apps/details?id=com.twitter.android
。iOS
:在 iPhone 上打开 Safari,并在地址栏中输入例如'twitter://'
。如果应用启动,则使用该 URL 作为标识符。
iOS 白名单
要在 iOS 9+ 上获得有用的结果,请在应用的 Info.plist
中将您要查询的 URL 方案列入白名单。
例如,要查询 twitter://
、whatsapp://
和 fb://
,请按如下方式编辑 app/App_ResourcesiOS/Info.plist
xml
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fb</string>
<string>twitter</string>
<string>whatsapp</string>
</array>
Android 查询权限
从 Android API 级别 30(Android 11)开始,您必须在 Android 清单文件 AndroidManifest.xml
中明确声明您的应用与其他应用交互的意图。
xml
<manifest>
<queries>
<package android:name="com.whatsapp" />
</queries>
<application ...>
</application>
</manifest>
将 com.whatsapp
替换为您要与其交互的应用的包名称。
API
方法 | 返回类型 | 描述 |
---|---|---|
available(packageName:string) | Promise<boolean> | 异步检查设备上是否安装了指定 packageName 的应用。 |
availableSync(packageName:string) | boolean | 同步检查设备上是否安装了指定 packageName 的应用。 |
许可证
Apache 许可证 2.0 版