W mojej aplikacji internetowej (nie natywnej) na telefony komórkowe chcę zrobić zdjęcie i przesłać je, ale nie chcę używać Adobe Flash. Czy jest na to sposób?
W mojej aplikacji internetowej (nie natywnej) na telefony komórkowe chcę zrobić zdjęcie i przesłać je, ale nie chcę używać Adobe Flash. Czy jest na to sposób?
Odpowiedzi:
W telefonie iPhone iOS6 i nowszym systemie Android ICS HTML5 ma następujący znacznik, który pozwala robić zdjęcia z urządzenia:
<input type="file" accept="image/*" capture="camera">
Capture
może przyjmować wartości takie jak kamera, kamera wideo i dźwięk.
Myślę, że ten tag zdecydowanie nie będzie działał w iOS5, nie jestem tego pewien.
<input type="file" accept="image/*;capture=camera">
zamiast tego powinien być kod . Według MDN nie ma capture
atrybutu dla input
elementu.
capture="camera"
(String), jak i starsze accept="image/*;capture=camera"
zostały zastąpione w 2012 roku capture="capture"
(Boolean). Ten atrybut służy do wymuszania przechwytywania zamiast wybierania z biblioteki. Zobacz specyfikację i poprawną składnię dla przechwytywania multimediów HTML
W dzisiejszych czasach przynajmniej z Androidem jest to stosunkowo łatwe. Wystarczy użyć zwykłego znacznika wejściowego pliku, a gdy użytkownik go kliknie, telefon zapyta, czy użytkownik chce użyć aparatu (lub menedżerów plików itp.) Do przesłania pliku. Wystarczy zrobić zdjęcie aparatem, a zostanie ono automatycznie dodane i przesłane.
Nie mam pojęcia o iPhonie. Może ktoś może to oświecić. EDYCJA: iPhone działa podobnie.
Próbka tagu wejściowego:
<input type="file" accept="image/*" capture="camera">
multiple
działa zarówno na Androidzie, jak i iOS, patrz Poprawna składnia dla przechwytywania multimediów HTML
Aby to zaktualizować, standardem jest teraz:
<input type="file" name="image" accept="image/*" capture="environment">
aby uzyskać dostęp do kamery (tylnej) skierowanej do środowiska, oraz
<input type="file" name="image" accept="image/*" capture="user">
do kamery skierowanej do użytkownika (z przodu). Aby uzyskać dostęp do wideo, zamień „video” na „image” w nazwie.
Testowany na iPhonie 5c, z systemem iOS 10.3.3, firmware 760, działa dobrze.
Safari i Chrome na iOS 6+ i Android 2.2+ obsługują HTML Media Capture, który pozwala robić zdjęcia aparatem urządzenia lub wybrać istniejący:
<input type="file" accept="image/*">
Oto jak to działa na iOS 10:
Android 3.0+ i Safari na iOS 10.3 + obsługują również capture
atrybut, który służy do przeskakiwania prosto do aparatu.
<input type="file" accept="image/*" capture>
capture="camera"
(String) i accept="image/*;capture=camera"
(Parameter) były częścią starych specyfikacji i zostały zastąpione capture
(Boolean) Rekomendacją dla kandydatów W3C.
Dokumentacja pomocnicza: ta książka O'Reilly 2013 i moje testy
capture
zamiast capture="camera"
. Ciekawe, jakie urządzenie i wersja Androida.
no cóż, istnieją nowe funkcje HTML5 umożliwiające dostęp do natywnej kamery urządzenia - „getUserMedia API”
UWAGA: HTML5 może obsługiwać przechwytywanie zdjęć ze strony internetowej na urządzeniach z Androidem (przynajmniej w najnowszych wersjach obsługiwanych przez system operacyjny Honeycomb; ale nie obsługuje tego na iPhone'ach, ale na iOS 6).
Możesz używać WEBRTC, ale niestety nie jest obsługiwane przez wszystkie przeglądarki internetowe. PONIŻSZY LINK POKAŻ, KTÓRE PRZEGLĄDARKI obsługują to http://caniuse.com/stream
Link ten daje wyobrażenie o tym, jak uzyskać do niego dostęp (przykładowy kod). http://www.html5rocks.com/en/tutorials/getusermedia/intro/
getUserMedia
jest przesada, załatwi sprawę <input type="file" accept="image/*">
.
AppMobi HTML5 SDK obiecał kiedyś dostęp do natywnych funkcji urządzenia - w tym aparatu - z aplikacji opartej na HTML5, ale nie jest już własnością Google. Zamiast tego wypróbuj odpowiedzi oparte na HTML5 w tym poście .
Będziesz chciał użyć getUserMedia, aby uzyskać dostęp do kamery.
W tym samouczku opisano podstawy dostępu do kamery urządzenia z przeglądarki: https://medium.com/@aBenjamin765/make-a-camera-web-app-tutorial-part-1-ec284af8dddf
Uwaga: Działa to na większości urządzeń z Androidem, a na iOS tylko w Safari.
Należy zauważyć, że zostały zaimplementowane funkcje bezpieczeństwa, które wymagają albo uruchomienia aplikacji lokalnie na localhost, albo poprzez SSL, aby GetUserMedia () działał.
Odkryłem to, wypróbowując kilka dostępnych wersji demonstracyjnych, i byłem zawiedziony, gdy nie działały! Zobacz: Nowe ograniczenia bezpieczeństwa
Nie sądzę, abyś mógł - istnieje interfejs API W3C do pobierania audio lub wideo, ale nie ma jeszcze implementacji w żadnym z głównych mobilnych systemów operacyjnych.
Drugi najlepszy Jedyną opcją jest skorzystanie z sugestii Dennisa, aby użyć PhoneGap. Oznacza to, że musisz utworzyć natywną aplikację i dodać ją do sklepu z aplikacjami mobilnymi.
Nie znam żadnego sposobu uzyskania dostępu do kamery telefonu komórkowego z przeglądarki internetowej bez dodatkowego mechanizmu (tj. Flash lub jakiegoś rodzaju kontenera, który umożliwia dostęp do sprzętowego interfejsu API)
Dla tych ostatnich zajrzyj na PhoneGap: http://docs.phonegap.com/phonegap_camera_camera.md.html
Dzięki temu powinieneś mieć dostęp do kamery przynajmniej na urządzeniach z systemem iOS i Android.