All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.apkcloud.devicedetector.parser.client.MobileApp Maven / Gradle / Ivy

Go to download

通用设备检测库将解析任何UserAgent并检测浏览器、操作系统、使用的设备(桌面、平板、移动、电视、车载、游戏机等等)、品牌和型号。

There is a newer version: 1.0.7
Show newest version
package io.github.apkcloud.devicedetector.parser.client;

import io.github.apkcloud.devicedetector.ClientHints;
import io.github.apkcloud.devicedetector.parser.client.hints.AppHints;

import java.util.Map;
import java.util.Objects;

/**
 * 用于检测移动应用程序的客户端解析器
 */
public class MobileApp extends AbstractClientParser {

    private AppHints appHints;

    protected String fixtureFile = "regexes/client/mobile_apps.yml";

    protected String parserName = "mobile app";

    public MobileApp() {
        super();
        this.appHints = new AppHints();
    }

    public MobileApp(String ua) {
        super(ua);
        this.appHints = new AppHints(ua);
    }

    public MobileApp(String ua, ClientHints clientHints) {
        super(ua, clientHints);
        this.appHints = new AppHints(ua, clientHints);
    }

    /**
     * 设置 ClientHints
     */
    public void setClientHints(ClientHints clientHints) {
        super.setClientHints(clientHints);
        this.appHints.setClientHints(clientHints);
    }

    /**
     * 设置要解析的 UserAgent
     */
    public void setUserAgent(String ua) {
        super.setUserAgent(ua);;
        this.appHints.setUserAgent(ua);
    }

    @Override
    public String getName() {
        return parserName;
    }

    /**
     * 解析当前的 UA 并检查是否包含任何客户端信息

* 更多细节参见 {@link AbstractClientParser#parse()} * * @return {@code Map | null} */ public Map parse() throws Exception { Map result = parse(fixtureFile, parserName); String name = null, version = null; if (result != null) { name = result.getOrDefault("name", ""); version = result.getOrDefault("version", ""); } Map appHash = appHints.parse(); if (appHash != null && !Objects.equals(appHash.get("name"), name)) { name = appHash.getOrDefault("name", ""); version = ""; } if (isNullOrEmpty(name)) { return null; } return Map.of("type", parserName, "name", name, "version", version); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy