#ios #nativescript #nativescript-plugin
#iOS #nativescript #nativescript-плагин
Вопрос:
Я интегрирую фреймворк iOS (Vidyohttps://developer.vidyo.io/#/documentation/4.1.25.30) из пользовательского плагина NativeScript. Я могу создать экземпляр класса iOS из моего плагина, но я не могу правильно вызвать эту функцию iOS :
(id) init:(void*)view RemoteParticipants:(unsigned int)remoteParticipants LogFileFilter:(const char*)logFileFilter LogFileName:(const char*)logFileName
Из команды nativescript
TNS_DEBUG_METADATA_PATH="$(pwd)/metadata" tns build ios
Я могу видеть подпись, которую ожидает NativeScript :
- Name: 'init:ViewStyle:RemoteParticipants:LogFileFilter:LogFileName:'
JsName: initViewStyleRemoteParticipantsLogFileFilterLogFileName
Filename: [...].h
Module:
[...]
Type: Method
Signature:
- Type: Instancetype
- Type: Pointer
PointerType:
Type: Void
- Type: Enum
Name: VCConnectorViewStyle
- Type: UInt
- Type: CString
- Type: CString
Когда я даю указатель void, он работает, однако функция ожидает, пока view отобразит видео, поэтому функция выполняет свою работу, но я ничего не вижу в своем приложении для iOS. На данный момент у меня есть свой UIView :
this.nativeView = UIView.alloc().initWithFrame(UIScreen.mainScreen.bounds)
initViewStyleRemoteParticipantsLogFileFilterLogFileName(this.nativeView, [...])
Это не работает, так как у меня ошибка :
ERROR Error: Value is not a pointer.
Вопрос: Как получить указатель из моего пользовательского интерфейса?
Комментарии:
1. Какой SDK / фреймворк вы на самом деле пытаетесь реализовать, есть ли у них документы для Objective C?
2. @Manoj Я пытаюсь реализовать Vidyo developer.vidyo.io/#/documentation/4.1.25.30. У них действительно есть документация на Objective C и образец. Они передают указатель UIView. Однако я не могу передать NativeScript UIView в качестве указателя, чтобы передать его Vidyo
3. Возможно, вам следует поискать
interop.Reference
: docs.nativescript.org/core-concepts/ios-runtime/types / …4. Привет @ Juky спасибо за вашу помощь, я уже пробовал, но я не знаю, что дать для взаимодействия. Reference () поскольку все примеры предназначены для строки / целого числа, а не для сложных объектов, таких как UIView
Ответ №1:
Наконец-то нашел решение, если честно, с некоторой удачей :
this.nativeView = UIView.alloc().initWithFrame(UIScreen.mainScreen.bounds)
let ref = new interop.Reference(interop.Pointer, this.nativeView)
initViewStyleRemoteParticipantsLogFileFilterLogFileName(ref, [...])
Довольно просто, но в документации не было ясности по этому поводу. Надеюсь, это поможет