Статьи

Почему приложения для Windows Phone заслуживают пользовательской схемы URI

Microsoft представила пользовательские схемы URI или ассоциации URI в Windows Phone 8, а также возможность запуска приложений на основе типа файла.

К сожалению, эта функция еще не используется в широком спектре приложений. Почему я так заинтересован в этом вопросе? Я собираюсь объяснить вам.

Во-первых, есть одна большая проблема: вы можете поделиться любым приложением через NFC и запустить любое приложение из Магазина через тег NFC, имеющий запись запуска приложения. Но вы не можете запускать какие-либо приложения из вашего приложения — только те, которые реализовали пользовательскую схему URI. В двух других крупных операционных системах совместное использование приложений является стандартной функцией, используемой многими разработчиками.

Большинство страниц настроек имеют одну из этих схем URI, например, страницу настроек Wi-Fi можно запустить с помощью простой строки кода:

await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-wifi:"));

Я не знаю, если другие разработчики просто не знают об этой функции или они не думают, что это необходимо. Я говорил со многими пользователями моего приложения NFC Toolkit для Windows Phone 8, и все попросили меня добавить возможность запуска нужного приложения в конце моих профилей (если вы не знаете, мои профили запускают программируемую последовательность страницы настроек).

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

  • Каждый день я ухожу на работу, отключаю Wi-Fi, активирую Bluetooth и переключаю сотовую связь с 2G на 3G / 4G. Я часто использую Nokia Music для прослушивания музыки, когда еду на работу (около 45 минут). Это один из вариантов использования.
  • Второй сценарий также должен быть знаком некоторым из вас: я отключаю все соединения для передачи данных, потому что в противном случае мой телефон очень часто звонил бы ночью. Утром я снова включаю их и проверяю новости с помощью приложения для чтения каналов. Это идеально вписывается в профиль, который я сохраняю в теге NFC или запускаю через дополнительную плитку.
  • Третий: есть много приложений для чтения блогов. Конечно, в Windows Phone встроены социальные сети — но только Facebook (только для пользователей), Twitter и LinkedIn. Что если я хочу поделиться с другой сетью, например  Geeklist ? Затем я должен скопировать и вставить вместо того, чтобы просто нажать кнопку поделиться.

Есть еще варианты использования, но я оставляю вас с этими тремя на данный момент.

Вернуться к разговорам, которые я имел с моими пользователями. Они хотят и заслуживают отличного пользовательского опыта. Этот пост является частью моих усилий, чтобы предоставить пользователям их заслуженный пользовательский опыт.

К сожалению, горстке разработчиков не так легко привлечь к этому внимание. Вот почему я пытаюсь получить DVLUP на борту. Создавая проблему для этого, больше разработчиков присоединились бы, чтобы заработать XP. Победителями в этом случае являются пользователи, потому что таким образом их пользовательский опыт будет улучшен. Я знаю, что это должно быть сделано Microsoft. Тем временем мы, разработчики, должны совершенствоваться. Вот почему я прошу вас проголосовать за мою идею о DVLUP здесь:  http://www.dvlup.com/Feedback?query=custom+uri+scheme+to+all+apps%21#  (первая запись в списке это тот, кто проголосует).

Осталась одна причина, по которой вы должны добавить пользовательскую схему URI в свое приложение. Этот момент для вас, разработчика, читающего эту статью. У вас есть бесплатная возможность рекламировать свое приложение среди других приложений. Самый важный момент: для добавления простой схемы запуска URI требуется всего 5 минут.

У вас уже есть собственная схема URI для вашего приложения? Отлично, добавьте его в этот список: Список схем ассоциаций URI — Nokia Developer Wiki . Таким образом, другие разработчики могут использовать их для взаимодействия с вашим приложением и привлечения новых пользователей.

В заключение этой статьи я хочу показать вам, как добавить простую пользовательскую схему запуска URI. Я недавно сделал это с моим приложением Mix Play & Share (обновление отправлено, я добавлю его в список выше, как только оно будет сертифицировано).

Простой запуск URI — код

Сначала откройте файл WMAppManifest.xml, щелкнув его правой кнопкой мыши и откройте с помощью… => XML (Text) Editor.

После элемента </ Tokens> добавьте следующий код:

<Extensions>
     <Protocol Name="your-custom-uri-scheme-here" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" />
</Extensions>

Сохраните и закройте документ.

Добавьте новый класс в ваш проект. Добавьте следующий код в ваш класс:

class UriSchemeMapper : UriMapperBase
{
    private string tempUri;

    public override Uri MapUri(Uri uri)
    {
        tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());

        // no parameters, desired launch to MainPage. no further code here.

        return uri;
    }
}

Чтобы сделать ваше приложение с помощью этой пользовательской схемы URI, вам просто нужно добавить еще одну строку кода после объявления вашего RootFrame в App.xaml.cs:

//Handle custom uri scheme
RootFrame.UriMapper = new UriSchemeMapper();

Вот и все, теперь ваше приложение может запускаться другими приложениями!

Вы также можете добавить более сложные пользовательские схемы URI (до 10 на приложение), чтобы узнать больше об этом, проверьте MSDN:  http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v= vs.105) .aspx # BKMK_URIassociations

Я надеюсь, что после прочтения этого поста вы поймете, почему я считаю важным добавить пользовательскую схему URI. С простым кодом выше, все готово за 5 минут.

До тех пор, счастливого кодирования!