我正在寻找一些最佳方法的建议。
基本上我有一些javascript可以检测用户是否在移动设备上,如果他们是加载的css文件,移动类被添加到页面的主体,隐藏字段被赋予移动值。然后我检查这个隐藏字段的值,以便我可以运行特定于移动设备的方法。
目前我已按要求完成所有工作,但我不得不在第一页加载时进行javascript回发,以便可以从后面的代码中访问隐藏字段的值。我只是想知道是否有更好的方法来做到这一点?
这是我的一些代码。
if ( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) {
$("body").addClass("mobile");
$('head').append('<link rel="stylesheet" href="Styles/mobile.css" type="text/css" />');
$('head').append('<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0;">');
if ($("#hfdevice").val() != "mobile")
{
$("#hfdevice").val("mobile");
__doPostBack('hfdevice','');
}
}
HiddenField hfdevice = (HiddenField)Master.FindControl("hfdevice");
if (hfdevice.Value == "mobile")
{
Do Stuff
}
答案 0 :(得分:1)
如果您不想使用响应式设计,则可以检测用户代理,就像他们在评论中提到的那样。代码背后是:
string theAgent = Request.UserAgent;
... run your check to see if mobile... change functionality, set cookie, etc.
您也可以在global.ascx中执行此操作,并根据需要加载其他MasterPage(移动母版页)。