当前位置: 首页 > 软件库 > 手机/移动开发 > >

nativescript-appavailability

授权协议 MIT License
开发语言 JavaScript TypeScript
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 朱兴学
操作系统 iOS
开源组织
适用人群 未知
 软件概览

NativeScript AppAvailability

A plugin to check for availability of other apps on the device.

⚠️ Looking for NativeScript 7 compatibilty? Go to the NativeScript/plugins repo.

Installation

Run the following command from the root of your project:

tns plugin add nativescript-appavailability

Usage

Note that version 1.3.0 added a synchronous version of this method that doesn't return a Promise. Need that? Use availableSync instead of 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);
})

Opening an app (with web fallback)

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");
}

iOS whitelisting

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.plistand 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.

  • Android: simply search the Play Store and use the id in the URL. For Twitter this is com.twitter.android because the URL is https://play.google.com/store/apps/details?id=com.twitter.android.
  • iOS: this one is a bit harder but this site should cover most apps you're interested in. When in doubt you can always fire up Safari on your iPhone and type for example 'twitter://' in the address bar, if the app launches you're good.
 相关资料
  • 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