【问题标题】:Preventing desktop users from accessing mobile website (Any foolproof way?)防止桌面用户访问移动网站(任何万无一失的方法?)
【发布时间】:2017-04-18 18:53:42
【问题描述】:

我试图通过确定用户代理和屏幕大小来阻止用户从桌面浏览器访问我的移动网站,但是通过两种方式他们仍然可以通过更改用户代理(桌面 Chrome > 更多工具)访问我的移动网站> 开发人员工具 > 网络 > 网络条件)或调整屏幕大小。除了用户代理和屏幕尺寸之外,是否有任何一些万无一失(或难以破解)的方法来阻止用户从桌面浏览器访问我的移动网站?

P.S:用户这样做的原因是因为我正在通过无广告体验推广我的网络应用程序,因此我的移动视频上还没有广告,但许多桌面用户正在滥用该功能。

【问题讨论】:

  • “有没有什么比较简单的方法”没有。
  • “许多桌面用户正在滥用该功能。”不,他们不是。将内容放在网络上意味着从任何设备浏览它。网络并非以这种方式进行限制。
  • 我明白了,亚历克斯。但除了确定用户代理和屏幕大小之外,还要寻找其他选项来防止。
  • 还有广告拦截器。我认为用户想自己决定如何使用您的页面。您可以请求捐款、关闭广告拦截器或创建没有广告的高级帐户。
  • 广告拦截器不会屏蔽我的视频广告,至少目前是这样。

标签: php apache .htaccess


【解决方案1】:

我所做的,似乎运作良好,是检查设备的方向并让它们侧向转动设备。大多数桌面用户无法弄清楚如何玩这个游戏,但它大部分时间都能完成这项工作。

我还检查了桌面浏览器中通常找不到的一些移动功能,包括检查:

  1. dppx
  2. 方向
  3. 手持查询
  4. 测试 ontouch 事件

(if ('ontouchstart' in window) {...})

  1. 强制用户更改方向,检查更改,如果在特定时间后更改尚未注册为方向更改,则重定向

//函数doOnOrientationChange() {/////

function doOnOrientationChange() {
switch(window.orientation) {  
  case -90 || 90:
    alert('landscape');
    break; 
  default:
    alert('portrait');
    break; 
}
}

window.addEventListener('orientationchange', doOnOrientationChange);

// Initial execution if needed
doOnOrientationChange();

将这些想法与浏览器检查/嗅探、触摸事件、屏幕尺寸等结合使用,您将尽可能接近将用户锁定到网站的桌面版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多