我在快递路由器中定义了一个正则表达式,以确定UA是否可移动,并且取决于是否移动,呈现不同的页面。
在我们的生产现场进行测试后,它的失败率为25% - 50%。
我想了解根本原因并解决问题。
谢谢。
Index.js
const moment = require('moment');
var _ = require('lodash');
var mobileRegex = new RegExp(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i, 'ig');
......
.....
.....
router.get('/', function(req, res, next) {
if (mobileRegex.test(req.headers['user-agent']) == true) {
console.log('User-Agent: ' + req.headers['user-agent']);
res.render('index-mobile')
} else {
res.render('index');
}
});
router.get('/([\*])', function(req,res, next) { //Escaping * because cloudflare page rules aren't built right
res.redirect('/')
});
etc...
答案 0 :(得分:0)
我认为“失败”是指您的移动设备未被检测到?
浏览器嗅探并不是特别可靠。您可以尝试使用WhichBrowser之类的内容,但您必须保持最新状态。 Mozilla自己recommend只是测试“Mobi”的用户代理字符串,所以你可能会看到更小的失败率。