как реализовать Один сигнал в Nativescript для iOS - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь реализовать Один сигнал в Nativescript.Для этого я использую плагин nativescript-onesignal .Он работает на Android, но не работает на iOS.Я сообщаю об этих ошибках в консоли «Sidekick»:

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.log("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.log("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.log("TnsOneSignal error", error);
            }

            return true;
        }

    }
    application.ios.delegate = MyDelegate;
}

if (application.android) {
    application.on(application.launchEvent, function(args: application.ApplicationEventData) {

        try {

            console.log("TnsOneSignal", TnsOneSignal);
            TnsOneSignal.ini(application.android.context).init()

        } catch (error) {
            console.error("error", error)
        }

    });
}

platformNativeScriptDynamic().bootstrapModule(AppModule);

1 Ответ

0 голосов
/ 01 июня 2019

Через несколько дней, наконец, я обнаружил, в чем проблема!это было исправлено с помощью VPN.

...