2015-10-02 4 views
0

Я начинаю программировать JS в Angular, но теперь мне поручена эта задача: создайте библиотеку, которая обращается к GPS-модулю телефона, гироскопу и акселерометру (и, возможно, к компасу) для сбора ускорения, положения и некоторых других данных. На самом деле это не очень много кода. Теперь создание самой библиотеки на C# уже сделано коллегой, но мне нужно знать, есть ли способ включить объектный C и Java-код, а также в библиотеку, которая была бы специфичный для платформы iOS/droid. Результат буквально должен быть единственным файлом dll, и он должен использоваться в xamarin. Требовалось даже, чтобы библиотека работала с угловым, о котором я понятия не имею, даже если это возможно. Это было бы бонусом, если бы это было возможно. Какие у нас есть возможности для этого?Как создать кросс-платформенную библиотеку xamarin, которая использует GPS-модуль телефона?

ответ

0

Вам необходимо создать портативную библиотеку классов (PCL), предназначенную для всех платформ. В этом PCL у вас будет интерфейс, который необходимо реализовать на каждой платформе, используя код, специфичный для платформы. Скажем:

public interface IGps 
{ 
    int SomeFunc(); 
} 

Каждый код, который управляет данными GPS, будет делать это в PCL, используя этот интерфейс.

На каждой платформе, на которую вы хотите настроить таргетинг, вам понадобится класс, который реализует этот интерфейс и внедряет его в PCL, используя инфраструктуру Injection Dependency. Таким образом, вы будете использовать определенную платформу из PCL, не зная деталей реализации для каждой платформы.

public class GPSWindowsPhone : IGPS 
{ 
    public int SomeFunc() 
    { 
     return 1; 
    } 
} 

Что касается использования нативного кода каждой платформы, это может быть сделано с помощью привязок для Obj-C и Java кода, а затем с помощью класса, который реализует интерфейс как простая обертка для кода, написанного на родном языке , Однако, если вы все еще не сделали никакого конкретного кодирования на платформе, я бы рекомендовал написать их на C# уже.

Что касается Угловой, вы можете взглянуть на некотором [языке] составитель JS, но я бы просто переписать его: P

+0

Спасибо, надеюсь, я смогу сделать это так. –

0

Есть уже целый ряд библиотек платформы Креста в компонентной магазине.

Xlabs имеет один https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Geolocator дает вам Lat, Long и заглавия в ведомой модели событий, то вы можете использовать, чтобы получить скорость направление ускорения и т.д. Работает в Xamarin на IOS Android и WP.

 Смежные вопросы

  • Нет связанных вопросов^_^