2011-07-25 8 views
5

Próbuję załadować lokalny HTML (który istnieje w strukturze folderów projektu) w instancji webStageView. Chociaż to działa prawidłowo w oknach i iPad/iPhone - nie udaje mu się zlokalizować pliki w Androidzie (tylko próbował go w 2.2)webStageView lokalna ścieżka HTML w Androidzie

File.applicationDirectory.url zwraca „app” File.applicationStorageDirectory.url zwraca „app- storage: "

File.applicationDirectory.nativePath zwraca pusty ciąg, jak określono w dokumentacji Adobe.

Problem polega na tym, że w widoku webowym pojawia się błąd "Strona nie jest dostępna, aplikacja: /test/index.html nie znaleziono". Czy istnieje sposób, aby uzyskać pełną ścieżkę lub "zmusić" przeglądarkę do zrozumienia, że ​​aplikacja: odnosi się do określonego folderu?

Dzięki!

+1

"Naprawiłem" to na razie za pomocą documentDirectory, który wskazuje na kartę SD. Całkiem hack, ale działa poprawnie (chwilowo oczywiście) – Pantelis

Odpowiedz

0

jako Adobe help states:

Aplikacja a aplikacja magazynu: systemy nie są obsługiwane.

iOS Twój kod działa idealnie, ale na Androidzie, trzeba osiągnąć go z jakimś hacky realizacji jak Twoja, ponieważ kwestie bezpieczeństwa związane z StateWebView wczytywania adresów URL z tych katalogów. Innym rozwiązaniem jest skopiowanie aplikacji: lub app-storage: plik do tymczasowego jednego i załadować ten plik temp URL w StageWebView:

var htmlFile:File = File.applicationDirectory.resolvePath(url); 
var workingFile:File = File.createTempFile(); 
htmlFile.copyTo(workingFile, true); 
stageWebView.loadURL(workingFile.url); 

Edit: Innym rozwiązaniem mogłoby być posiadanie treści html zakodowana w an .Jak plik i użyj metody StageWebView.loadString(). Mając na uwadze, że musisz zakodować ten ciąg na urządzenia z Androidem.

0

Naprawię ten problem przez kilka dni. Schemat pliku: URL odnosi się do pliku na komputerze klienta. W pliku nie ma nazwy hosta: scheme; wystarczy podać ścieżkę do pliku. Tak więc plik na twoim lokalnym komputerze będzie plikiem: ///~User/2ndFile.html. Zwróć uwagę na trzy ukośniki; część adresu URL hosta jest pusta, więc ukośnik na początku ścieżki następuje bezpośrednio po podwójnym ukośniku na początku adresu URL. Będziesz także potrzebował rozszerzyć ścieżkę użytkownika; ~ nie rozwija się w pliku: URL. Więc potrzebujesz pliku: ///home/User/2ndFile.html (w większości Uniksów), file: ///Users/User/2ndFile.html (w Mac OS X) lub file: /// C:/Użytkownicy/Użytkownik/2ndFile.html (w systemie Windows). To rozwiązanie działa idealnie w mojej aplikacji.