Как получить указатель из моего NativeScript UIView для iOS? - PullRequest
0 голосов
/ 11 марта 2019

Я интегрирую среду iOS (Vidyo https://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, он работает, однако функция ждет представления, чтобы отобразить видео, поэтому функция выполняет свою работу, но я ничего не вижу в своем приложении для iOS. На данный момент у меня есть свой UIView:

this.nativeView = UIView.alloc().initWithFrame(UIScreen.mainScreen.bounds)
initViewStyleRemoteParticipantsLogFileFilterLogFileName(this.nativeView, [...]) 

Не работает, так как у меня ошибка:

 ERROR Error: Value is not a pointer.

Вопрос: Как получить указатель из моего UIView?

1 Ответ

1 голос
/ 13 марта 2019

Наконец-то нашел решение, если повезет, если честно:

this.nativeView = UIView.alloc().initWithFrame(UIScreen.mainScreen.bounds)
let ref = new interop.Reference(interop.Pointer, this.nativeView)
initViewStyleRemoteParticipantsLogFileFilterLogFileName(ref, [...])

Довольно просто, но документация не была ясна по этому поводу. Надеюсь, это поможет

...