如何使用 Angular nativeScript Bootstrap 在 Android 上扩展应用程序 Class

How to Extend Application Class on Android with Angular nativeScriptBootstrap

I'm trying to implement OneSignal's Push Notification SDK on android and in order to do so, I need to Extend Application Class and call OneSignal.startInit in the onCreate method.

我一直在遵循文档和 Android Extend Sample App 中发布的指南。这些都不起作用。

尝试构建 Android Extend Sample App 导致 Java ID 0 not found 错误。

我也在探索 export class AppComponent extends android.app.Application 的可能性,但到目前为止我还没有找到。

如有任何提示,我们将不胜感激!

有两种方法可以实现,后者比较复杂

将以下内容放入您的 main.ts

var application = require("application");
application.on(application.launchEvent, function (args) {
    if (args.android) {
        // For Android applications
    com.onesignal.OneSignal.startInit(application.android.context).init();
    } else if (args.ios !== undefined) {
        // For iOS applications, args.ios
    }
});

在您的应用程序文件夹中创建一个新的 JavaScript 文件 - 将其命名为 application.android.js

var application = require("application");
var superProto = android.app.Application.prototype;
var Application = android.app.Application.extend("org.myApp.Application", {
    onCreate: function () {
        superProto.onCreate.call(this);
        application.android.init(this);
        com.onesignal.OneSignal.startInit(this).init();
    }
});

修改 <application-name>app/App_Resources/Android/ 文件夹中 AndroidManifest.xml 文件中的应用程序条目

<application
        android:name="org.myApp.Application"
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >