Мне нужно разработать приложение nativescript , интегрированное с sdk android native.
Я создал пример приложения в Android Studio и сгенерировал файл aar , затем я создал плагин nativescript, используя этот файл.
Наконец, я включил этот плагин в приложение nativescript.
Когда я попытался получить доступ к методу, представленному в файле aar , я получил сообщение о том, что метод не является функцией.
Первый раз, когда я попытался создать аар со следующим классом
(Java)
package com.example.toasterlibrary;
import android.content.Context;
import android.widget.Toast;
public class ToasterMessage {
public ToasterMessage() {
}
public static void show(Context c,String message){
Toast.makeText(c,message,Toast.LENGTH_SHORT).show();
}
}
Затем попытался изменить функцию «show», чтобы она не была статичной
(Java)
public void show(Context context, String message) {
CharSequence text = "Hello NativeScript!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
С другой стороны, я создал плагин для вызова sdk и получил сообщение об ошибке в файле de index.js, включенном в плагин nativescript, в частности в строку toaster.show (context, "Hello world");
(плагин Nativescript)
var application = require("application");
var context = application.android.context;
module.exports = {
showToast: function() {
var toaster = new com.example.toasterlibrary.ToasterMessage();
toaster.show(context,"Hello world");
}
};
Наконец, это файл, который использует плагин, он работает правильно, но я включаю его, чтобы дать больше контекста
(App Nativescript)
import { Component, OnInit } from "@angular/core";
import * as ToasterMessage from 'nativescript-toaster'
@Component({
selector: "ns-items",
moduleId: module.id,
templateUrl: "./items.component.html"
})
export class ItemsComponent implements OnInit {
constructor() { }
ngOnInit(): void {
ToasterMessage.showToast();
}
}
Я ожидаю, что запускаю тост-сообщение, но запускаю следующую ошибку:
ERROR TypeError: toaster.show is not a function
Эта ошибка возникает в плагине nativescript после выполнения этой команды tns run android :