Я пытаюсь реализовать Один сигнал в Nativescript. Я использую для этого Плагин nativescript-onesignal. Он работает на Android, но не работает на iOS. Я даю эти ошибки в консоли помощника:
ERROR: Encountered error during push registration with OneSignal: Error Domain=OneSignal Error Code=403 "(null)" UserInfo = {returned=Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo = {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}}
ERROR: Encountered error during email registration with OneSignal: (null)
пока есть эти ошибки, Один сигнал не может определить мое устройство как подписчика. кто-нибудь знает, как реализовать это для iOS? Я не знаю, как мне это решить. Есть идеи?
Это мой main.ts
файл:
// this import should be first in order to load some required settings (like globals and reflect-metadata)
import { platformNativeScriptDynamic } from "nativescript-angular/platform";
import { AppModule } from "./app/app.module";
import * as application from "tns-core-modules/application";
const TnsOneSignal = require("nativescript-onesignal").TnsOneSignal;
// A traditional NativeScript application starts by initializing global objects, setting up global CSS rules, creating, and navigating to the main page.
// Angular applications need to take care of their own initialization: modules, components, directives, routes, DI providers.
// A NativeScript Angular app needs to make both paradigms work together, so we provide a wrapper platform object, platformNativeScriptDynamic,
// that sets up a NativeScript application and can bootstrap the Angular framework.
console.info("main starts");
if (application.ios) {
class MyDelegate extends UIResponder implements UIApplicationDelegate {
public static ObjCProtocols = [UIApplicationDelegate];
public applicationDidFinishLaunchingWithOptions(app: UIApplication, launchOptions: NSDictionary<any, any>): boolean {
try {
console.info("TnsOneSignal", TnsOneSignal);
// init to recieve push notification
TnsOneSignal.initWithLaunchOptionsAppId(launchOptions, "b2fdda95*********");
// I have not yet implemented the part of receiving notifications in ios, when I have it I will publish it
} catch (error) {
console.info("TnsOneSignal error", error);
}
return true;
}
}
application.ios.delegate = MyDelegate;
}
if (application.android) {
application.on(application.launchEvent, function(args: application.ApplicationEventData) {
try {
console.info("TnsOneSignal", TnsOneSignal);
TnsOneSignal.ini(application.android.context).init()
} catch (error) {
console.error("error", error)
}
});
}
platformNativeScriptDynamic().bootstrapModule(AppModule);
Также обратите внимание, что симулятор Xcode не поддерживает push-уведомления, поэтому вы должны протестировать его на реальном устройстве.
@Manoj Я только что установил его с помощью команды tns plugin add nativescript-onesignal
. как включить возможность push-уведомлений?
@Narendra Да, я знаю, я тестирую это на iPhone.
Через несколько дней, наконец, я нашел, в чем проблема! это было исправлено с помощью VPN.
Включили ли вы функцию push-уведомлений в своем предварительном профиле и настроили настроенный push-сертификат в OneSignal?