web-dev-qa-db-ja.com

現在のプラットフォームがコンデンサのネイティブアプリケーションまたはWebであるかどうかを判断するにはどうすればよいですか。

Cordovaでは、process.env.CORDOVA_PLATFORMに即座にアクセスできました。コンデンサが似たものがありますか?

スタートアップにいくつかの関数を調整することを目指しており、非同期Device.getInfoを返すのを待っているレンダリングをブロックしたくない。

たとえば、Makeのネイティブキーボードの変更を加えるスクリプトをインポートするためにすぐに判断したいが、Web上で実行されている場合はこのスクリプトをインポートしたくない

try {
  const { Keyboard } = Plugins
  Keyboard.setAccessoryBarVisible({ isVisible: true })
} catch (error) {
  // Keyboard isn't available on web so we need to swallow the error
}

私はVUE-CLIを使っています

9
Titan

文書化されていない:Capacitor.platform

Capacitor.platformなどです。webiosAndroid

3
Titan

WebアプリがコンデンサまたはWeb内で実行されているかどうかを判断するために使用できるプロパティCapacitor.isNativeもあります。

https://github.com/ionic-team/capacitor/blob/master/core/src/definitions.ts

1
laberning

これでCapacitor.isPluginAvailable('plugin name')を使用してこのチェックを行うことができます。

import { Capacitor, Plugins } from '@capacitor/core';
const { Keyboard } = Plugins;
...
const isAvailable = Capacitor.isPluginAvailable('Keyboard');

if (isAvailable) {
  Keyboard.setAccessoryBarVisible({ isVisible: true })
}

 _
0
Brownoxford

あなたはここにある公式文書上のすべての人々を見ることができます: https://capacitorjs.com/docs/basics/utilities#getplatform

if (Capacitor.getPlatform() === 'ios') {
  // do something
}

if (Capacitor.isNative) {
  // do something
}
 _
0
Sampath