npm i --save nativescript-appavailability
- 版本:1.3.2
- GitHub:
- NPM: https://npmjs.net.cn/package/nativescript-appavailability
- 下载次数
- 昨日: 3
- 上周: 5
- 上个月: 66
NativeScript AppAvailability
一个检查设备上其他应用是否可用的插件。
安装
从您项目的根目录运行以下命令
tns plugin add nativescript-appavailability
用法
请注意,版本 1.3.0 添加了一个同步版本的此方法,它不会返回 Promise。需要吗?请使用
availableSync
而不是available
。
TypeScript
const isAppAvailable = require("nativescript-appavailability").available;
// examples of what to pass:
// - for iOS: "maps://", "twitter://", "fb://"
// - for Android: "com.facebook.katana"
appavailability.available("twitter://").then((avail: boolean) => {
console.log("App available? " + avail);
})
TypeScript + Angular
import * as appavailability from "nativescript-appavailability";
// examples of what to pass:
// - for iOS: "maps://", "twitter://", "fb://"
// - for Android: "com.facebook.katana"
appavailability.available("twitter://").then((avail: boolean) => {
console.log("App available? " + avail);
})
JavaScript
var appAvailability = require("nativescript-appavailability");
// examples of what to pass:
// - for iOS: "maps://", "twitter://", "fb://"
// - for Android: "com.facebook.katana"
appAvailability.available("com.facebook.katana").then(function(avail) {
console.log("App available? " + avail);
})
打开应用(带有网页回退)
现在您知道应用是否已安装,可能想打开它。以下是一个示例代码,它打开移动 Twitter 应用,如果未安装则回退到网站。
import { available } from "nativescript-appavailability";
import { openUrl } from "tns-core-modules/utils/utils";
const twitterScheme = "twitter://";
available(twitterScheme).then(available => {
if (available) {
// open in the app
openUrl(twitterScheme + (isIOS ? "/user?screen_name=" : "user?user_id=") + "eddyverbruggen");
} else {
// open in the default browser
openUrl("https://twitter.com/eddyverbruggen");
}
})
还可以使用更简洁的同步方式
import { availableSync } from "nativescript-appavailability";
import { openUrl } from "tns-core-modules/utils/utils";
if (availableSync("twitter://")) {
openUrl("twitter://" + (isIOS ? "/user?screen_name=" : "user?user_id=") + "eddyverbruggen");
} else {
openUrl("https://twitter.com/eddyverbruggen");
}
iOS 白名单
为了在 iOS 9 及以上版本获取有用的结果,您需要在应用程序的 .plist
文件中白名单您要查询的 URL Scheme。
幸运的是,NativeScript 使这变得非常简单。只需打开 app/App_ResourcesiOS/Info.plist
并添加以下内容,如果您想查询 twitter://
和 fb://
。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fb</string>
<string>twitter</string>
</array>
您可能会想知道如何确定应用的正确标识符。
- Android:只需在 Play 商店中搜索,并使用 URL 中的 id。对于 Twitter,这是 com.twitter.android,因为 URL 是 https://play.google.com/store/apps/details?id=com.twitter.android。
- iOS:这稍微有点困难,但这个网站应该涵盖了您感兴趣的大多数应用。如果有疑问,您始终可以在 iPhone 上打开 Safari 并在地址栏中输入例如 'twitter://',如果应用启动,则一切正常。