Tôi cần phải hiển thị trang khác nhau nếu nó được đánh dấu bằng cảm ứng iphone/ipod. Tôi cho rằng thông tin nằm trong đối tượng yêu cầu, nhưng cú pháp sẽ là gì?Làm cách nào để phát hiện ứng dụng appengine của tôi có đang được truy cập bằng cảm ứng iphone/ipod không?
Trả lời
Đây là cú pháp tôi đang tìm kiếm, làm việc với iPhone và iPod Touch:
uastring = self.request.headers.get('user_agent')
if "Mobile" in uastring and "Safari" in uastring:
# do iphone/ipod stuff
This article nêu một số cách để phát hiện iPhone thông qua bằng cách kiểm tra biến đại lý HTTP_USER_AGENT. Tùy thuộc vào nơi bạn muốn thực hiện kiểm tra tại (cấp HTML, Javascript, CSS, v.v.), tôi chắc chắn bạn có thể ngoại suy điều này vào ứng dụng Python của mình. Xin lỗi, tôi không phải là một anh chàng python. 8^D
Kiểm tra tác nhân người dùng. Nó sẽ là
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
Tôi không chắc chắn làm thế nào để làm điều này với appengine, nhưng mã PHP tương đương có thể được tìm thấy ở đây: http://www.mattcutts.com/blog/iphone-user-agent/
Vâng, nó sẽ thay đổi. Các bit chính mà ứng dụng nên kiểm tra là 'iPhone' và 'AppleWebKit' - sử dụng chuỗi chính xác đó sẽ cắn bạn trong ass vào lần tiếp theo Safari nhận được bản phát hành điểm. – ceejayoz
Không, các bit chính là Mobile/(cái gì đó) và Safari/(cái gì đó). "iPhone" sẽ không có trên iPod touch. –
Android hiển thị như thế nào? Dựa trên webkit của nó, và tôi sẽ không ngạc nhiên nếu nó đặt Safari trong UA của nó (chrome làm điều này, iirc). –
Dưới đây là cách thực hiện thực hiện nó như middleware trong Django, giả sử đó là những gì bạn đang sử dụng trên appengine.
class DetectiPhone(object):
def process_request(self, request):
if 'HTTP_USER_AGENT' in request.META and request.META['HTTP_USER_AGENT'].find('(iPhone') >= 0:
request.META['iPhone'] = True
Về cơ bản hãy tìm 'iPhone' trong HTTP_USER_AGENT. Lưu ý rằng iPod Touch có chữ ký hơi khác so với iPhone, do đó tìm kiếm 'iPhone' rộng thay vì tìm kiếm hạn chế hơn.
nếu bạn đang sử dụng khung webapp tiêu chuẩn, tác nhân người dùng sẽ ở trong trường hợp yêu cầu. Điều này cần được đủ tốt:
if "iPhone" in request.headers["User-Agent"]:
# do iPhone logic
Tôi nghĩ rằng mã của bạn nên nói self.request.headers ["User-Agent"] Điều này làm việc tuyệt vời cho tôi. Cảm ơn – mcotton
Các Using the Safari on iPhone User Agent String bài viết trên trang web của apple chỉ các đại lý người dùng khác nhau dành cho iPhone và iPod touch.
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3
Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/XXXXX Safari/525.20
import os
class MainPage(webapp.RequestHandler):
@login_required
def get(self):
userAgent = os.environ['HTTP_USER_AGENT']
if userAgent.find('iPhone') > 0:
self.response.out.write('iPhone support is coming soon...')
else:
self.response.out.write('Hey... you are not from iPhone...')
- 1. Làm cách nào để phát hiện cảm ứng trong cocos2d?
- 2. Tôi làm cách nào để phát hiện xem ứng dụng Android có đang được sử dụng ở Hàn Quốc không?
- 3. Tôi làm cách nào để phát hiện ứng dụng hiện đang tập trung?
- 4. Làm cách nào để phát hiện xem ứng dụng của tôi có đang chạy trên máy ảo không?
- 5. Phát hiện xem Cửa hàng ứng dụng Windows 8 có màn hình cảm ứng hay không
- 6. Phát hiện cảm ứng trên bitmap
- 7. Phát hiện cảm ứng Cocos2d-x
- 8. Nhận PID của ứng dụng hiện đang được thực hiện
- 9. Tôi làm cách nào để truy cập vào sổ địa chỉ iPhone trong ứng dụng web?
- 10. Tôi làm cách nào để sử dụng OAuth2 trong công cụ dòng lệnh để truy cập một ứng dụng được lưu trữ trên Google Appengine?
- 11. Làm cách nào để ngăn các ứng dụng Android khác truy cập hoạt động của tôi
- 12. Android phát hiện trạng thái cảm ứng từ bất kỳ ứng dụng nào
- 13. Android - Tôi có thể tắt tiếng hiện đang phát các ứng dụng âm thanh không?
- 14. Làm cách nào để biết ứng dụng iPhone của tôi có đang chạy khi nhận được Thông báo đẩy không?
- 15. Phát hiện ứng dụng nào hiện đang chạy trên iOS bằng sysctl
- 16. Làm cách nào để phát hiện, qua javascript trong Safari Mobile, nếu ứng dụng iPhone của tôi được cài đặt?
- 17. Làm cách nào để tắt tính năng phát hiện cảm ứng?
- 18. Phát hiện xem ứng dụng Flash có được tải đúng cách bằng Javascript không?
- 19. Ứng dụng Rails 3.2.13 của tôi có đang chạy trên máy phát triển của tôi bị tấn công không?
- 20. Cách phát hiện xem có phiên bản mới hơn của ứng dụng iOS của tôi không?
- 21. Phát hiện vị trí cảm ứng trên UIScrollView?
- 22. Java trên máy Mac: Làm cách nào để phát hiện khi nào ứng dụng của tôi nhận được tiêu điểm?
- 23. Làm cách nào để phát hiện việc sử dụng kích thước heap của ứng dụng android
- 24. Làm cách nào để kiểm tra xem ứng dụng của tôi có quyền truy cập vào thư viện điện thoại
- 25. Phát hiện xem dịch vụ vị trí có được bật cho ứng dụng của tôi
- 26. Apple phát hiện truy cập UDID trong quá trình xem xét ứng dụng như thế nào?
- 27. Làm thế nào để truy cập vào pass từ passbook trong ứng dụng của tôi?
- 28. làm cách nào để ứng dụng của tôi đọc cấu hình ứng dụng thay vì machine.config?
- 29. cảm ứng mô phỏng bằng cách sử dụng ADB
- 30. Có thể cài đặt/truy cập SSL cho ứng dụng Google App Engine của tôi không?
Tôi nhận được 'AttributeError: 'WSGIRequest' đối tượng không có thuộc tính 'headers''. – noio