NativeScript Передача UIViewController в собственный метод iOS - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь создать новый плагин для Square Reader, следуя семени плагинов nativescript (инструкции для iOS https://docs.connect.squareup.com/payments/readersdk/setup-ios). Последний шаг - передать объект UIViewController, чтобы он мог отображать страницу извлечения в вашемПри попытке передать требуемые параметры я постоянно получаю сообщение об ошибке, подобное этому:

- [SquareReader checkoutController: didFailWithError:]: нераспознанный селектор, отправленный экземпляру 0x10aa5c960 * вызов JavaScriptstack: (0 UIApplicationMain @ [собственный код] 1 start @ file: ///app/tns_modules/tns-core-modules/application/application.js: 272: 26 2 анонимный @ file: ///app/app.js: 4: 18 3 оценивать @ [собственный код] 4 moduleEvaluation @: 1: 11 5 @: 7: 48 6вестиReactionJob @: 1: 11) * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '-[SquareReader checkoutController: didFailWithError:]: нераспознанный селектор отправлен в экземпляр 0x10aa5c960 '*** Первый вызов стека вызовов: (0x185676d8c 0x1848305ec 0x185684098 0x18567c5c8 0x18556241c0x1019b21f4 0x184f68aa0 0x184f68a60 0x184f7565c 0x18561f070 0x18561cbc8 0x18553cda8 0x187522020 0x18f55c758 0x101640044 0x10163e7a4 0x10163e26c 0x100cf5630 0x1012f0e14 0x1012f9a24 0x1012f9a34 0x1012f2ee0 0x10128c198 0x101261e94 0x1013f6b9c 0x100d0a354 0x101492964 0x1012fa494 0x1012f9a34 0x1012f9a34 0x1012f9a34 0x1012f2ee0 0x10128c198 0x101261e94 0x1013f6c80 0x10148e8e0 0x100d01898 0x100d47f50 0x10079629c 0x184fcdfc0)

Пытаюсьреализовать UIViewController в моем демонстрационном приложении:

класс экспорта HelloWorldModel extends UIViewController {...}

Ошибка возникает из следующих строк:

let checkoutController = new SQRDCheckoutController ({параметры: параметры, делегат: это});checkoutController.presentFromViewController (view);

, где this - это объект класса SquareReader, который я создал и который имеет функции checkoutControllerDidFailWithError (которые мне нужно реализовать для SQRDCheckoutControllerDelegate) и view - это экземпляр класса HelloWorldModel.

Я не вижу ничего для передачи UIViewController s нативным методам iOS в {N}, но я нашел https://discourse.nativescript.org/t/example-of-extending-uiviewcontroller-in-angular-2-and-nativescript/469, который может бытьподобное?

1 Ответ

0 голосов
/ 12 октября 2018

Пожалуйста, обратитесь Objective C к JS документам , чтобы понять правильный способ вызова нативного apis.

Предполагая, что SQRDCheckoutController является контроллером, правильный способ инициализации его с помощью параметров будет

SQRDCheckoutController.initWithParametersDelegate(params, delegate)

Если вы используете TypeScript, генерирует файлы объявлений , чтобы вам было проще понять, какова форма JS вызова доступных методов api.

Youможет ссылаться на модуль ядра tns для примеров реализаций UIViewController .Если вы планируете сделать этот плагин открытым исходным кодом, не стесняйтесь загружать его на GitHub, чтобы мастера плагинов из сообщества могли легко вам помочь.

...