QuietJs - ошибка Ionic 3

Я пытаюсь реализовать библиотеку quietjs в un ionic проекте, но у меня возникла ошибка un, которую я не могу понять.

Вот мой код:

app.html

 <ion-fab bottom center>
        <button ion-button block (tap) = "sendQuietData()">
            Send
        </button>
    </ion-fab>

app.ts

//button acction for sending data
sendQuietData() {
    this.initQuiet();
    Quiet.transmitter({profile: 'ultrasonic', onFinish: this.onTransmitFinish}).transmit(Quiet.str2ab('example text'));

}


//initialize quietjs library
initQuiet() {
    Quiet.init({
        profilesPrefix: "/assets/data",
        memoryInitializerPrefix: "/assets/data",
        libfecPrefix: "/assets/data"
    });

    Quiet.addReadyCallback(this.onQuietReady, this.onQuietFail);
}

//setting up the profile
onQuietReady() {

    Quiet.transmitter({profile: 'ultrasonic', onFinish: this.onTransmitFinish});

};

//on failure log it in console
onQuietFail(reason) {
    console.info("quiet failed to initialize: " + reason);
};

//on finish log it in the console
onTransmitFinish() {
    console.info("quiet finished transmiting: ");
};

Я получаю такую ​​ошибку:

ERROR TypeError: Cannot read property 'length' of undefined
    at lengthBytesUTF8 (quiet-emscripten.js:1)
    at Object.intArrayFromString (quiet-emscripten.js:1)
    at Object.transmitter (quiet.js:281)
    at AppPage.webpackJsonp.115.AppPage.sendData (app.ts:69)
    at Object.eval [as handleEvent] (AppPage.html:8)
    at handleEvent (core.js:13589)
    at callWithDebugContext (core.js:15098)
    at Object.debugHandleEvent [as handleEvent] (core.js:14685)
    at dispatchEvent (core.js:10004)
    at core.js:10629

Кто-нибудь сталкивался с этой ошибкой, или есть пример того, как реализовать quietjs в приложении Ionic.

Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
110
1

Ответы 1

Мне удалось заставить это работать, я оставлю это здесь на случай, если кто-то еще захочет узнать, как это сделать.

Прежде всего, создайте папку в src / assets под названием quiet (или как хотите, но не забудьте изменить путь к включенным файлам в index.html), путь будет src / assets / quiet

Скопируйте quiet.js и quiet-emscripten.js в созданную папку src / assets / quiet.

Скопируйте скрипт quiet-emscripten.js.mem в папку www.

Поместите в свой www / index.html этот код ниже:

  1. Между тегами заголовков это будет выглядеть примерно так: скрипт data-ionic = "inject"> (function (w) {var i = w.Ionic = w.Ionic || {}; i.version = '3.9.2'; i.angular = '5.2.5'; i.staticDir = 'build /'; })(окно); / скрипт>

2. после тега ... ion-app> вам нужно будет включить библиотеки

<ion-app></ion-app>
<script type = "text/javascript" src = "assets/quiet/quiet.js"></script
<script async type = "text/javascript" src = "assets/quiet/quiet-emscripten.js"></script>
<script src = "build/polyfills.js"></script>
  1. Поместите в свой файл .ts, где вы собираетесь использовать библиотеку объявить var Quiet: any;

Вот и все, при этом ваша библиотека должна работать без проблем.

Другие вопросы по теме