Im Junior djangodev.
我需要检测3种类型device,tablet,mobile或desktop.
我在github上找到了检测到的移动设备的脚本,但我如何检测移动设备,平板电脑和桌面?
谢谢!
Ada*_*tak 33
根据您之前使用的移动检测中间件,我建议如下:
拿起MobileESP 的Python端口(这里是源代码)(感谢Mariusz Miesiak的推荐)并将其放入mobileesp项目基础中命名的文件夹(在哪里manage.py).抛出一个空白__init__.py文件,以便Python将其视为一个包.
继续middleware.py在该目录中创建一个新文件,并填写:
import re
from mobileesp import mdetect
class MobileDetectionMiddleware(object):
"""
Useful middleware to detect if the user is
on a mobile device.
"""
def process_request(self, request):
is_mobile = False
is_tablet = False
is_phone = False
user_agent = request.META.get("HTTP_USER_AGENT")
http_accept = request.META.get("HTTP_ACCEPT")
if user_agent and http_accept:
agent = mdetect.UAgentInfo(userAgent=user_agent, httpAccept=http_accept)
is_tablet = agent.detectTierTablet()
is_phone = agent.detectTierIphone()
is_mobile = is_tablet or is_phone or agent.detectMobileQuick()
request.is_mobile = is_mobile
request.is_tablet = is_tablet
request.is_phone = is_phone
Run Code Online (Sandbox Code Playgroud)
最后,请一定要包括'mobileesp.middleware.MobileDetectionMiddleware',在MIDDLEWARE_CLASSES你的设置文件.
有了它,在您的视图中(或任何您有请求对象的地方),您可以检查is_phone(对于任何现代智能手机),is_tablet(对于现代平板电脑)或is_mobile(对于任何移动设备).
| 归档时间: |
|
| 查看次数: |
8633 次 |
| 最近记录: |