下面列出了android.webkit.WebSettings#getDefaultUserAgent ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 获取UserAgent
*
* @return UserAgent
*/
@NonNull
public static String getUserAgent() {
String userAgent = "";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
try {
userAgent = WebSettings.getDefaultUserAgent(AppUtils.getContext());
} catch (Exception e) {
userAgent = System.getProperty("http.agent");
}
} else {
userAgent = System.getProperty("http.agent");
}
StringBuffer sb = new StringBuffer();
for (int i = 0, length = userAgent.length(); i < length; i++) {
char c = userAgent.charAt(i);
if (c <= '\u001f' || c >= '\u007f') {
sb.append(String.format("\\u%04x", (int) c));
} else {
sb.append(c);
}
}
return sb.toString();
}
private void toggleDesktopMode(boolean enabled) {
WebSettings settings = web.getSettings();
settings.setLoadWithOverviewMode(enabled);
settings.setUseWideViewPort(enabled);
settings.setSupportZoom(enabled);
settings.setBuiltInZoomControls(enabled);
settings.setDisplayZoomControls(!enabled);
String userAgent = enabled ? "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0" : WebSettings.getDefaultUserAgent(this);
userAgent += " Aria2App/" + BuildConfig.VERSION_NAME + "-" + BuildConfig.FLAVOR;
settings.setUserAgentString(userAgent);
}
public boolean isWebViewFound(Context context) {
if (webViewFound == null) {
try {
WebSettings.getDefaultUserAgent(context);
webViewFound = true;
} catch (Exception e) {
webViewFound = false;
}
}
return webViewFound;
}
public static String getUserAgent(Context context) {
if (sUserAgent != null) {
return sUserAgent;
}
String agent = context == null ? "" : WebSettings.getDefaultUserAgent(context);
sUserAgent = agent + " ; MaterialUp-App/" + BuildConfig.VERSION_CODE;
return sUserAgent;
}
/**
* Gets ua.
*
* @return the ua
*/
public final String getUA() {
final String systemUa = System.getProperty("http.agent");
String result;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
result = WebSettings.getDefaultUserAgent(context) + "__" + systemUa;
} else {
result = new WebView(context).getSettings().getUserAgentString() + "__" + systemUa;
}
return CheckValidityUtil.checkValidData(result);
}
private String getUserAgent() {
if (Build.VERSION.SDK_INT < 19) {
WebView webView = new WebView(this);
WebSettings settings = webView.getSettings();
return settings.getUserAgentString();
}
// api >= 19
return WebSettings.getDefaultUserAgent(this);
}
public static int getChromeVersion(Context context) {
String chromeString = "Chrome/";
String defaultUserAgent = WebSettings.getDefaultUserAgent(context);
if (defaultUserAgent.contains(chromeString)) {
int chromeIndex = defaultUserAgent.indexOf(chromeString);
int dotIndex = defaultUserAgent.indexOf('.', chromeIndex);
String version = defaultUserAgent.substring(chromeIndex + chromeString.length(), dotIndex);
return Integer.parseInt(version);
} else return -1;
}
@ReactMethod(isBlockingSynchronousMethod = true)
public String getUserAgentSync() {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
return WebSettings.getDefaultUserAgent(getReactApplicationContext());
} else {
return System.getProperty("http.agent");
}
} catch (RuntimeException e) {
return System.getProperty("http.agent");
}
}
public static void getUserAgent(Context context) {
WebSettings.getDefaultUserAgent(context);
}