Не удается запустить приложение Windows Phone с пользовательской схемой URL

1

Я пытаюсь написать приложение, которое должно запускаться автоматически, когда пользователь нажимает ссылку на определенный URL (это должно быть что-то вроде "myscheme://myurl")

Я выполнил инструкции по этой ссылке http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx Однако это не работает

Вот как выглядит мой код

В файле WMAppManifest.xml я добавил это после токенов

<Extensions>
  <Protocol Name="myscheme"
            NavUriFragment="encodedLaunchUri=%s"
            TaskID="_default" />
</Extensions>

Затем я создал файл, который я назвал AssociationUriMapper.cs, и который содержит

using System;
using System.Windows.Navigation;

namespace PhoneApp3
{
    class AssociationUriMapper : UriMapperBase
    {
        private string tempUri;

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

            //URI association for my scheme
            if (tempUri.Contains("myscheme:"))
            {
                return new Uri("/MainPage.xaml");
           }

            //else return
            return uri;
        }
    }
}

Затем в App.xaml.cs я добавил эту строку после "rootframe.navigated"

// Assign the URI mapper to the frame
RootFrame.UriMapper = new AssociationUriMapper();

Теперь, согласно тому, что я понял о ссылке, которую я включил из msdn, если я перейду в Internet Explorer в симуляторе Windows Phone и наберу что-нибудь вроде "myscheme://something", он должен автоматически запустить мое приложение (даже если приложение ничего не делает при условии, что мне пока не удается действительно использовать URL-адрес, я просто хочу, чтобы он открыл мое приложение)

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

(Кстати, извините, если я сделал грамматику или орфографические ошибки, английский не мой родной язык)

Теги:
uri
url-scheme
custom-url
windows-phone-8

2 ответа

1
Лучший ответ

Вы можете взглянуть на этот учебник.

Вот цитата из нее:

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

И еще один:

Что НЕ запускает вашу ассоциацию URI и запускает ваше приложение: введите непосредственно URI в веб-браузере. Сканирование QR-кода из поиска Bing.

Таким образом, ввод URI в браузере НЕ работает. Для того, чтобы проверить, как приложение ведет себя при запуске из другого приложения, вы можете загрузить ярлыки, сделать ярлык для пользовательского URI и введите URI, который вы хотите проверить там.

Отказ от ответственности: я работаю в Enless Soft и Shortcuts - это одно из наших приложений.

  • 0
    Спасибо, это была проблема! Я только что отредактировал URL как ссылку на html-странице, и когда я нажимаю на него, он запускает мое приложение, как и должно!
0

Поэтому я добавил код, как описано в статье MSDN http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx, в приложение Windows Phone 7.1

Мои шаги были такими же, как описано Florian.C. Проблема в том, что если я добавлю:

<Extensions>
    <Protocol Name="myApp" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" />
</Extensions>

Я получаю сообщение об ошибке от VS, сообщая, что "Протокол" не может быть дочерним элементом Extensions, он ожидает дочернего расширения. Можно ли запустить схему для ОС 7.1?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню