如何检测在应用程序中使用Node API的移动设备

时间:2019-05-23 08:15:52

标签: android node.js express kotlin

我在移动应用中使用快递API。通过移动浏览器测试API时,快递服务器检测到移动(使用用户代理),但问题出在应用程序上。每当我从移动应用程序发出API请求时,user-agent标头就只有okhttp/3.12.1

我该如何检测移动设备?

除了user-agent之外,可能还有其他解决方案。

请帮助。

2 个答案:

答案 0 :(得分:0)

android使用的是okhttp库,在okhttp中,您可以在标头中设置用户代理

Request request = new Request.Builder()
    .url("http://www.publicobject.com/helloworld.txt")
    .header("User-Agent", "mobile")
    .build();

答案 1 :(得分:0)

如果我理解的正确,那么您正在使用React-Native开发您的移动应用程序。 “ okhttp / 3.12.1”是RN的正确用户代理。只需检查用户代理是否为“ okhttp / 3.12.1”即​​可识别您自己的移动应用。

否则,您可能需要识别移动浏览器。

我使用类似的东西:

mobile_browser_user_agent_sign_list = "Android", "iPhone", "Opera Mini", "Windows Phone", "Mobile Safari"


def is_mobile_device(user_agent):
    if "okhttp" in user_agent:
        return True
    for sign_item in mobile_browser_user_agent_sign_list:
        if sign_item in user_agent:
            return True
    return False