Mam aplikację ClickOnce i potrzebuję możliwości przekazania parametrów adresu URL do niej. Na przykład użytkownik może kliknąć adres URL formularza "http://foo.bar/MyApp.application?flavor=grape", a to uruchomi moją aplikację, przekazując do niej zapytanie "? Flavor = grape".Przekazywanie parametrów adresu URL do aplikacji ClickOnce w dowolnej przeglądarce
Niestety, wygląda na to, że działa to tylko w IE po wyjęciu z pudełka. W przeglądarkach Firefox i Chrome użytkownik musi zainstalować dodatki, aby uruchomić wdrożenie ClickOnce. Moi użytkownicy pracują w ograniczonym środowisku korporacyjnym i nie mogą instalować żadnych dodatków ani niczego innego w tej sprawie (ClickOnce dla nich działa). Więc co mam zrobić ?
Jeden z hacków, o których mógłbym myśleć, to rejestrowanie mojej aplikacji jako programu obsługi plików dla jakiegoś wystarczająco unikalnego rozszerzenia pliku, takiego jak ".bugmaster". Potem - przynajmniej moja teoria poszła - mogłem kazać serwerowi wygenerować plik o nazwie "flavor_grape.bugmaster"; użytkownik kliknie adres URL wskazujący na ten plik, a następnie "Uruchom" zamiast "Zapisz", a to uruchomi moją aplikację, która następnie przeanalizuje nazwę pliku dla parametrów URL. Niestety to podejście również nie działa. Działa doskonale, gdy plik "flavor_grape.bugmaster" jest otwierany z lokalnego systemu plików, ale z jakiegoś powodu nie działa, gdy użytkownik próbuje otworzyć plik z przeglądarki.
Czy ktoś ma jakieś inne pomysły?
Wow! Każdego dnia uczysz się nowych rzeczy. Pracuję z ClickOnce przez jakiś czas i jakoś tęskniłem za tą opcją. @Marty Dill: Czy używałeś tej techniki w przeszłości? – RLH
Yup! Zobacz mój drugi akapit. Użyłem go do wygenerowania plików setup.exe, które zawierają informacje o tym, z którym serwerem należy się połączyć. Gdy system był już gotowy do działania, działał całkiem nieźle. –
To naprawdę fajna sztuczka, ale niestety szczęście potrzebuję nieograniczonej liczby opcji (cóż, myślę, że technicznie jest ograniczona, ale jest ich więcej niż 1e10), a moja aplikacja musi zostać podpisana. Chociaż prawdopodobnie mógłbym skonfigurować usługę internetową do podpisywania aplikacji. To ciekawy pomysł, dzięki! – Bugmaster