2015-12-07 16 views
22

Mam aplikację Java, która otwiera pliki WebDAV na MS Word. To działa poprawnie w systemie Windows z następującym kodem:Otwórz plik Worda WebDAV na OSX

Ale w systemie Mac OSX nie jest to możliwe. Próbowałem tej funkcji, ale tylko otwiera się pusty dokument:

Runtime.getRuntime().exec(new String[]{"open", "-a", "Microsoft Word", webdavUrl}); 

jeśli utworzyć plik z adresu URL, mogę otworzyć plik, ale tracę swoje odniesienie do adresu URL WebDAV.

Znalazłem discussion o kodzie javascript, który może wykonać ten proces z przeglądarki.

Jakieś myśli?

+1

Może sugerowane tutaj rozwiązania mogą być pomocne (np. Za pomocą AppleScript): https://stackoverflow.com/questions/8387371/how-to-startup-a-mac-os-x-application-od-- wiersz poleceń . W tej chwili jednak nie jestem w stanie ich wypróbować. –

+0

Dla każdego, kto zastanawia się, dlaczego to nie działa w pakiecie Office 2016 dla komputerów Mac, powodem jest to, że obsługa WebDAV została usunięta z tej wersji pakietu Office. –

Odpowiedz

5

Po pierwsze, czy możesz uzyskać dostęp do katalogu, w którym znajduje się słowo doc? montujesz swój webdav?

Wierzę, że terminal będzie szukał ścieżki, którą jest twój webdavUrl. Aby debugować, spróbuj uruchomić to samo polecenie, ale tylko z argumentami -R i webdavUrl.

Runtime.getRuntime().exec(new String[]{"open", "-R", webdavUrl}); 

-R wyświetli plik w Finderze i dzięki temu wiesz, że terminal może w rzeczywistości nawigować do twojego webdavUrl.

+1

Należy również zapoznać się z dokumentem polecenia otwarcia. Ma wszystkie argumenty, których możesz użyć. https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/open.1.html –

+1

powinieneś edytować '" -aR' na '" -aR "' na wypadek gdyby ktoś cię skopiował linia kodu, aby to wypróbować –

+1

Dzięki za złapanie, powinno być po prostu -R –

2

Możesz wypróbować jedną z następujących czynności:

: Użyj pulpitu Api jak opisano here.

File myFile = new File(webdavUrl); 
Desktop.getDesktop().open(myFile); 

: Zastosowanie ms-word: uri jako szczegółowym here.

Na przykład wpisz "ms-word:ofe|u|http://webdavUrl" w przeglądarce. Jeśli masz zainstalowany pakiet Microsoft Office (2010 SP2 +), powinien otworzyć aplikację Word z załadowanym dokumentem.

Poniższe zasoby mogą być pomocne, ponieważ dotyczą różnych sposobów otwierania/edytowania plików tekstowych na serwerze Webdav.

0

Po prawie 4 tygodniach dochodzenia, ja z powodzeniem opracowała rozwiązanie tego problemu:

  1. Po pierwsze, po stronie serwera utwórz punkt końcowy, aby otworzyć dokument tekstowy za pomocą javascript IT HIT library. Ta biblioteka używa wtyczki Sharepoint Browser do otwierania dokumentu w programie Word 2011 dla systemu Mac OS X za pomocą protokołu Webdav.
  2. Teraz na java, użyj konsoli, aby otworzyć Safari z końcowym adresem URL, aby otworzyć dokument tekstowy.W tym celu możesz podać URL dokumentu jako parametr dla punktu końcowego.

    Runtime.getRuntime().exec(new String[]{"open", "-a", "Safari", getWebdavUrl(document)}); 
    
    private static String getWebdavUrl(Document document) throws JSONException, UnsupportedEncodingException { 
    
    RestClient client = RestClient.getClient(); 
    String baseUrl = client.SERVER_URL + "webdav_end_point"; 
    JSONObject params = new JSONObject(); 
    
    params.put("url", document.getUrl()); 
    
    //convert the JSON params to GET params for the URL 
    String url = baseUrl + RestClient.buildParamsString(params); 
    
    //https://wwww.example.com/webdav_end_point?url=www.example.com/path/to/webdav/document.docx 
    return url; 
    } 
    

Pozwala otworzyć dokument w programie Word 2011 dla Mac OS X, ale nie masz do czynienia z bezpieczeństwem i sesji użytkownika, jeśli masz ograniczeń w edycji dokumentu. W każdym razie, wdrożyłem to rozwiązanie z powodzeniem i jest to jedyne rozwiązanie, które znalazłem, które dopełnia proces.

+0

Używaj ponownie Maca, pamiętaj, że Chrome zrzucił obsługę wtyczek Java, i z jakiegoś powodu nie rozumiem, Mac Chrome nie będzie automatycznie otwiera adres URL na podstawie słowa ms: protokół wprowadzony przez biuro. Safari i inni Zrób to jednak. Więc na MAC, nie musisz używać biblioteki IT HIT, możesz po prostu utworzyć łącze do dokumentu na podstawie ms-word: protocol. Teraz chciałbym dowiedzieć się, dlaczego Mac Chrome się nie zachowuje. – Dave