首页 > 解决方案 > 如何在 aurelia 中做特定平台?

问题描述

实际上,我是 Aurelia 的新手,我正在尝试在 Cordova 的帮助下构建一个移动应用程序,我想要不同平台的不同内容,我正在为 Aurelia 使用 ECMAScript,我尝试了以下方式,但它不起作用

      if (window.cordova && window.cordova.platformId === 'browser') {
   console.log("something")
 }

标签: cordovaaurelia

解决方案


使用正确配置的项目,您将为不同平台配置不同的构建脚本。然后,您可以简单地让构建脚本为您在某处设置这些变量。

这是一个如何工作的示例:

declare const IS_DEV_BUILD: boolean; // The value is supplied by Webpack during the build
declare const IS_CORDOVA: boolean; // The value is supplied by Webpack during the build
export async function configure(aurelia: Aurelia) {
    if (IS_CORDOVA) {
        const cordova = new CordovaEvents();
        await cordova.waitForDeviceReady();
    }

可以使用 webpack DefinePlugin 设置这些类型的变量:

new webpack.DefinePlugin({ IS_DEV_BUILD: JSON.stringify(isDevBuild), IS_CORDOVA: JSON.stringify(isCordova) }),

您可以将 env 参数从构建脚本传递给 cli,最好在 package.json 中定义(如果您使用的是 nps,则可以在 package-scripts.js 中定义):

"build": "webpack --mode development --env.cordova",

如果您正在使用,这些概念是相似的aurelia-cli,但不幸的是,我不知道有任何使用 aurelia-cli 的科尔多瓦示例项目。


推荐阅读