Как сделать платформу специфичную для aurelia? - PullRequest
0 голосов
/ 04 мая 2018

На самом деле, я новичок в Aurelia, я пытаюсь создать мобильное приложение с помощью Cordova, я хочу разный контент для разных платформ, я использую ECMAScript для Aurelia, Я попробовал следующий способ, но он не работает

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

1 Ответ

0 голосов
/ 04 мая 2018

При правильно настроенном проекте у вас будут разные скрипты сборки для разных платформ. Тогда вы можете просто сделать так, чтобы сценарии сборки установили эти переменные где-то для вас.

Вот пример того, как это работает:

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

Переменные такого типа можно установить с помощью веб-пакета DefinePlugin:

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

И вы передадите параметры env в cli из скрипта сборки, который идеально определен в package.json (или package-scripts.js, если вы используете nps):

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

Концепции похожи, если вы работаете с aurelia-cli, но я не знаю ни одного примера проекта для cordova, использующего aurelia-cli, к сожалению.

...