À Cordoua, vous avez eu un accès immédiat à process.env.CORDOVA_PLATFORM
Y a-t-il quelque chose de similaire chez le condensateur?
Je cherche à charger de manière conditionnelle certaines fonctions au démarrage et que vous ne voulez pas bloquer le rendu en attente d'ASYNC Device.getInfo
revenir.
Par exemple, je tiens à déterminer immédiatement à Wether pour importer un script qui crée des modifications de clavier natif, mais je ne veux pas importer ce script si nous exécutons sur le Web
try {
const { Keyboard } = Plugins
Keyboard.setAccessoryBarVisible({ isVisible: true })
} catch (error) {
// Keyboard isn't available on web so we need to swallow the error
}
J'utilise Vue-Cli
Il y a aussi la propriété Capacitor.isNative
Sur lequel vous pourriez utiliser pour déterminer si le WebApp est en cours d'exécution dans le condensateur ou sur le Web.
https://github.com/ionic-team/capacitor/blob/master/core/src/definitions.ts
Vous pouvez maintenant utiliser Capacitor.isPluginAvailable('plugin name')
pour faire ce chèque, par exemple:
import { Capacitor, Plugins } from '@capacitor/core';
const { Keyboard } = Plugins;
...
const isAvailable = Capacitor.isPluginAvailable('Keyboard');
if (isAvailable) {
Keyboard.setAccessoryBarVisible({ isVisible: true })
}
Vous pouvez voir tous ceux de la DOC officielle ici: https://capacitorjs.com/docs/basics/utiersfgetplatform
if (Capacitor.getPlatform() === 'ios') {
// do something
}
if (Capacitor.isNative) {
// do something
}
Je dirais que le périphérique.getinfo () est le seul moyen fiable de vérifier la plate-forme de l'appareil dans le projet basé sur les condensateurs.
Étant donné que la mise en œuvre de Getplatform (), Capacitor.Platform est basée sur l'agent utilisateur du client UI. Cela signifie que si vous avez ouvert votre application sur Web et que vous sélectionnez Outils de développeur, sélectionnez la vue mobile, dans ce cas, elle identifiera votre plate-forme comme iOS ou Android en fonction de laquelle vous avez sélectionné dans Dev Outils au lieu de 'la toile'