【问题标题】:How to Extend Application Class on Android with Angular nativeScriptBootstrap如何使用 Angular nativeScriptBootstrap 在 Android 上扩展应用程序类
【发布时间】:2016-12-28 08:04:54
【问题描述】:
我正在尝试在 android 上实现 OneSignal's Push Notification SDK,为此,我需要 Extend Application Class 并在 onCreate 方法中调用 OneSignal.startInit。
我一直在关注文档和Android Extend Sample App 中发布的指南。这些都不起作用。
尝试构建Android Extend Sample App 会导致Java ID 0 not found 错误。
我也在探索export class AppComponent extends android.app.Application 的可能性,到目前为止我没有运气。
任何提示将不胜感激!
【问题讨论】:
标签:
java
android
angular
typescript
nativescript
【解决方案1】:
有两种方法可以实现,后者比较复杂
将以下内容放在您的 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" >