Как получить указатель из моего NativeScript UIView для iOS?

#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, [...])
  

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