Я хочу создать оболочку Nativescript для библиотеки Java, чтобы я мог использовать ее функциональные возможности для приложения Nativescript.Похоже, не так уж много статей, в которых подробно говорится об этом, и, похоже, нет четкого способа сделать это в самом приложении Nativescript, поэтому я сейчас делаю это оболочкой для плагинов.
Конкретная библиотека Java, над которой я работаю, это Libsignal-protocol-java .Я пошел вперед и клонировал Nativescript Plugin Seed и добавил эту библиотеку Java в качестве зависимости:
src / platform / android / include.gradle
android {
}
dependencies {
compile 'org.whispersystems:signal-protocol-android:2.3.0+'
}
Затем я нашел конкретный пакет, содержащий метод, который я пытаюсь получить доступ ro в исходном коде Java: KeyHelper.generateRegistrationId();
source .В одной статье упоминалось, что это необходимо, так как вам придется указывать пакет при создании экземпляра класса и метода.
Затем я настраиваю свой libsignal-protocol.common.ts
следующим образом, чтобы попытаться использовать собственный метод:
src / libsignal-protocol.common.ts
import { Observable } from 'tns-core-modules/data/observable';
export class Common extends Observable {
constructor() {
// does not work
let test1 = new org.whispersystems.libsignal.util.KeyHelper.generateRegistrationId();
// does not work
let test2 = org.whispersystems.libsignal.util.KeyHelper.generateRegistrationId();
console.log(test1);
console.log(test2);
}
}
К моему ужасу, регистратор вернул эту ошибку:
System.err: Error: java.lang.Exception: Failed resolving method generateRegistrationId on class org.whispersystems.libsignal.util.KeyHelper
Я не уверен, где ещечтобы пойти сюда сейчас, я хотел пойти по этому пути, так как казалось более безопасным / чистым создать оболочку для этой удивительной библиотеки Java, чем пытаться провести браузеризацию их библиотеки javascript, поскольку для этого требуются определенные функции, недоступные в Nativescript.
AnyПомощь или предложения будут оценены!Для здравомыслия я включу несколько статей, которые я нашел по этому вопросу, которые помогли мне привести меня туда, где я сейчас нахожусь.
Источники