A plugin to check for availability of other apps on the device.
⚠️ Looking for NativeScript 7 compatibilty? Go to the NativeScript/plugins repo.
Run the following command from the root of your project:
tns plugin add nativescript-appavailability
Note that version 1.3.0 added a synchronous version of this method that doesn't return a Promise. Need that? Use
availableSync
instead ofavailable
.
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);
})
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);
})
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);
})
Now that you know whether an app is installed or not, you probably want to launch it.Here's a snippet that opens the mobile Twitter app and falls back to the website if it's not installed.
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");
}
})
And a more concise, synchronous way would be:
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");
}
To get useful results on iOS 9 and up you need to whitelist the URL Schemeyou're querying in the application's .plist
.
Luckily NativeScript made this pretty easy. Just open app/App_ResourcesiOS/Info.plist
and add this if you want to query for both twitter://
and fb://
:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fb</string>
<string>twitter</string>
</array>
You may wonder how one would determine the correct identifier for an app.
NativeScript 可以使用 Javascript,CSS, XML 创建真正的 Native 跨平台应用,支持 iOS Android,NativeScript 将您的跨平台代码翻译成目标平台的代码。 UI 使用 XML 描述,CSS 样式,在编译时将 UI 转化成本地原生代码,最终得到正在的 Native 原生应用。 Telerik 公开了用于创建安卓、iOS和Windows Unive
NativeScript Command-Line Interface The NativeScript CLI lets you create, build, and deploy NativeScript-based apps on iOS and Android devices. Get it using: npm install -g nativescript What is Native
NativeScript-Snackbar �� �� �� NativeScript plugin for Material Design SnackBar component. Installation: NativeScript 7+:tns plugin add @nstudio/nativescript-snackbar NativeScript version prior to 7:t
Nativescript-Ripple This plugin aims to bring a native (or close to native) ripple implementation on Android and iOS. The android version uses a RippleDrawable and conserves the previous background, a
NativeScript-FloatingActionButton NativeScript plugin for Material Design Floating Action Button UI component. Installation Nativescript 7+: ns plugin add @nstudio/nativescript-floatingactionbutton Na
NativeScript CardView A NativeScript plugin to provide an XML widget to implement the Material Design CardView component. Installation NativeScript 7+: ns plugin add @nstudio/nativescript-cardview Nat