Xamarin Forms: код платформы c не показывает файл xaml - PullRequest
0 голосов
/ 13 марта 2020

У меня есть собственный SDK в моих формах Xamarin, который ничего не делает. У меня есть файл xaml за файлом спецификации c .cs платформы, но его содержимое не отображается.

Основной файл

private async void Video()
{
  DependencyService.Get<InterfaceFile>().GetNativeMethod();
}

Файл интерфейса

 public interface InterfaceFile
{
    void GetNativeMethod();
}

Собственный файл:

[assembly: Xamarin.Forms.Dependency(typeof(Demo))]
namespace Demo.Droid
{
  public partial class Demo : InterfaceFile
  {
    public string GetNativeMthod()
    {
       /// code
    }
  }
}

Приведенный выше код спецификации платформы c имеет реализацию видео с использованием сторонних собственных SDK. У меня есть код XAML за этим файлом. Я хочу начать этот видеозвонок в этом xaml-файле, чего не происходит. Как связать файл xaml с файлом .cs?

Редактировать

Я попытался удалить код xaml и добавил только файл .cs со следующим кодом (используя Vidyo native sdk):

public void GetNativeMethod()
{
 _vidyoConnector = new Connector(viewHandle,Connector.ConnectorViewStyle.ConnectorviewstyleDefault, 16, "warning all@VidyoConnector info@VidyoClient", "", 0);
 _vidyoConnector.ShowViewAt(viewHandle, 0, 0, viewWidth, viewHeight);
 _vidyoConnector.Connect(host, token, displayName, resourceId, this);
}

При использовании приведенного выше кода происходит сбой приложения, поскольку здесь не определен фрейм.

Собственный код SDK для метода Connector:

public Connector(IntPtr viewId, ConnectorViewStyle viewStyle, uint remoteParticipants, String logFileFilter, String logFileName, ulong userData){

        IntPtr nLogFileFilter = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(logFileFilter ?? string.Empty);
        IntPtr nLogFileName = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(logFileName ?? string.Empty);
        objPtr = VidyoConnectorConstructNative(ref viewId, viewStyle, remoteParticipants, nLogFileFilter, nLogFileName, userData);
        Marshal.FreeHGlobal(nLogFileName);
        Marshal.FreeHGlobal(nLogFileFilter);
        VidyoConnectorSetUserDataNative(objPtr, GCHandle.ToIntPtr(GCHandle.Alloc(this, GCHandleType.Weak)));
    }

Ссылка на документацию для видё: https://developer.vidyo.io/# / документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...