Я разрабатываю приложение на основе мобильного сайта, который запускается внутри Windows Runtime WebView для Windows Phone 8.1. В настоящее время я ищу способ поймать ссылки на клики в веб-приложении приложения, которые начинаются с определенного шаблона. В версии Windows Phone Silverlight, следующее было возможно:Поймать ссылку с определенным рисунком в Windows Runtime
В моей WebView отобразить ссылки как этот
<a href="ownstuff:bla()">Do something in the app</a>
<a href="ownstuff:blubb()">Do something different in the app</a>
В приложении, я поймаю щелчок по такой ссылке с помощью следующего кода
MyWebView.Navigating += HandleOwnStuff;
void HandleOwnStuff(object sender, NavigatingEventArgs e) {
String url = e.Uri.ToString();
if(url.StartsWith("ownstuff:")) {
// check which function has been called and do something in the app, e.g. open the camera
}
}
К сожалению, этот подход в приложении WinRT невозможен. Всякий раз, когда я нажимаю такую ссылку, запускающая программа открывается с сообщением «Поиск приложения в магазине». Обработчик «NavigationCompleted» WebView не вызывается - этот щелчок по ссылке улавливается перед вызовом любого обработчика WebView.
Подход, который будет работать, использует обработчик UnsupportedUriSchemeIdentified, который, к сожалению, доступен только с Windows 10 в UWP. Другим решением было бы полностью переписать мой веб-сайт так, чтобы можно было вызвать обработчик ScriptNotify - это было бы слишком много работать, поскольку веб-сайт теперь также работает в обычных браузерах, устройствах Android и iOS, поэтому этот подход определенно не стоит беда.
Кто-нибудь знает решение? Благодарю.
Что такое «приложение, которое работает в UWP WebView для Windows Phone 8.1»? Это WP8.1 Silverlight, WP8.1 WinRT или UWP-приложение? – sibbl
Спасибо, я уточнил свою формулировку - это в основном веб-сайт, который работает внутри WP8.1 WinRT – Velarion