श्रेणियाँ, पैकेज और रिपॉज़िटरी खोजें

पैकेज विवरणv1.7.0

ua_client_hints

Flutter को उपयोगकर्ता-एजेंट क्लाइंट हिंट्स प्रदान करें।

AndroidiOSWebmacOS
30-दिन डाउनलोड
1.9 लाख
लाइक
52
Pub अंक
130

पैकेज इंस्टॉल करें

flutter pub add ua_client_hints

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

ua_client_hints पैकेज फ्लटर एप्लिकेशन को User-Agent Client Hints तक पहुंचने की अनुमति देता है, जो मानक HTTP हेडर के माध्यम से विस्तृत ब्राउज़र और डिवाइस जानकारी प्रदान करता है। यह Android, iOS, Web और macOS पर प्लेटफॉर्म, मॉडल और ब्रांड जैसे क्लाइंट मेटाडेटा प्राप्त करने की प्रक्रिया को सरल बनाता है। यह विकासकर्ताओं को उपयोगकर्ता डिवाइस की विशेषताओं के आधार पर सामग्री डिलीवरी को अनुकूलित करने में सहायता करता है, जबकि User-Agent स्ट्रिंग के स्ट्रिंग पार्सिंग पर निर्भर नहीं रहता। यह पैकेज HTTP क्लाइंट्स के साथ बिना किसी बाधा के एकीकृत होता है और गोपनीयता-संरक्षित डिवाइस डिटेक्शन के लिए आधुनिक वेब मानकों का समर्थन करता है।

उपयोग

  • उपकरण-विशिष्ट सामग्री रेंडरिंग
  • ब्राउज़र और ओएस डिटेक्शन
  • अनुकूलित संपत्ति डिलीवरी
  • गोपनीयता-संवेदनशील विश्लेषण
  • क्रॉस-प्लेटफॉर्म संगतता परीक्षण

मुख्य विशेषताएँ

  • Android, iOS, Web और macOS का समर्थन करता है
  • HTTP हेडर्स के माध्यम से मानकीकृत क्लाइंट सुझाव प्रदान करता है
  • उपयोगकर्ता-एजेंट स्ट्रिंग पार्सिंग पर निर्भरता कम करता है
  • मौजूदा HTTP क्लाइंट्स के साथ एकीकरण
  • उपकरण निर्धारण के लिए आधुनिक वेब मानकों का पालन करता है

इनके लिए उपयुक्त

  • सटीक उपकरण की जानकारी की आवश्यकता वाले विकासकर्ता
  • अनुकूल उपयोगकर्ता अनुभव/उपयोगकर्ता इंटरफेस की आवश्यकता वाले ऐप्स
  • गोपनीयता और सुसंगतता पर केंद्रित परियोजनाएँ
  • वेब और मोबाइल हाइब्रिड एप्लिकेशन
  • सामग्री डिलीवरी अनुकूलन

विचार योग्य बातें

  • संगत सर्वर-पक्ष समर्थन की आवश्यकता है
  • ग्राहक संकेत उजागर करने वाले उपकरणों तक सीमित
  • सभी ब्राउज़र क्लाइंट हिंट्स का पूर्ण समर्थन नहीं करते हैं
  • अतिरिक्त सर्वर कॉन्फ़िगरेशन की आवश्यकता हो सकती है
  • मूल प्लेटफॉर्म क्षमताओं पर निर्भर करता है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

User-Agent Client Hints for Flutter

What's User-Agent Client Hints?

User-Agent Client Hints
Improving user privacy and developer experience with User-Agent Client Hints
User-Agent Client Hints Demo on Browser

⬇️ Response Accept-CH ⬆️ Request header ⬆️ RequestExample value Description
UA Sec-CH-UA "Chromium";v="84",
"Google Chrome";v="84"
List of browser brands and their significant version.
UA-Mobile Sec-CH-UA-Mobile ?1 Boolean indicating if the browser is
on a mobile device (?1 for true) or not (?0 for false).
UA-Full-Version Sec-CH-UA-Full-Version "84.0.4143.2" The complete version for the browser.
UA-Platform Sec-CH-UA-Platform "Android" The platform for the device,
usually the operating system (OS).
UA-Platform-Version Sec-CH-UA-Platform-Version "10" The version for the platform or OS.
UA-Arch Sec-CH-UA-Arch "ARM64" The underlying architecture for the device.
While this may not be relevant to displaying the page,
the site may want to offer a download which defaults to the right format.
UA-Model Sec-CH-UA-Model "Pixel 3" The device model.

Installation

This plugin is set the Null Safety.

Add this to your package's pubspec.yaml file by running the following command

$ flutter pub add ua_client_hints

Usage

Supported platforms:

  • Android
  • iOS
  • macOS
  • Web

On Web, values depend on browser support for User-Agent Client Hints. Some fields such as architecture, model, or platformVersion can be empty on browsers that don't expose high-entropy hints.

With Dio

Add to the request header.

class AppDio with DioMixin implements Dio {
  AppDio._([BaseOptions options]) {
    options = BaseOptions(
      baseUrl: 'https://wasabeef.jp',
    );

    this.options = options;
    interceptors.add(InterceptorsWrapper(
      onRequest: (options) async {
        // Add User-Agent Client Hints
        options.headers.addAll(await userAgentClientHintsHeader());
        return options;
      },
    ));
  }

  static Dio getInstance() => AppDio._();
}
APIs
final String ua = await userAgent();

print('User-Agent: $ua');  // e.g.. 'SampleApp/1.0.0 (Android 11; Pixel 4 XL; coral; arm64-v8a)'
// macOS example:
// 'SampleApp/1.0.0 (macOS 15.5.0; Mac; Mac15,12; arm64)'
// Web fallback example:
// 'SampleApp/1.0.0 (macOS 15.5.0; Google Chrome; arm64)'
final UserAgentData uaData = await userAgentData();

print('platform:        ${uaData.platform}');              // e.g.. 'Android'
print('platformVersion: ${uaData.platformVersion}');       // e.g.. '10'
print('model:           ${uaData.model}');                 // e.g.. 'Pixel 4 XL'
print('architecture:    ${uaData.architecture}');          // e.g.. 'arm64-v8a'
print('brand:           ${uaData.brand}');                 // e.g.. 'Google'
print('mobile:          ${uaData.mobile}');                // e.g.. true
print('device:          ${uaData.device}');                // e.g.. 'coral'
print('appName:         ${uaData.package.appName}');       // e.g.. 'SampleApp'
print('appVersion:      ${uaData.package.appVersion}');    // e.g.. '1.0.0'
print('packageName:     ${uaData.package.packageName}');   // e.g.. 'jp.wasabeef.ua'
print('buildNumber:     ${uaData.package.buildNumber}');   // e.g.. '1'
final Map<String, dynamic> header = await userAgentClientHintsHeader();

print("Sec-CH-UA-Arch:             ${header['Sec-CH-UA-Arch']}");             // e.g.. 'arm64-v8a'
print("Sec-CH-UA-Model:            ${header['Sec-CH-UA-Model']}");            // e.g.. 'Pixel 4 XL'
print("Sec-CH-UA-Platform:         ${header['Sec-CH-UA-Platform']}");         // e.g.. 'Android'
print("Sec-CH-UA-Platform-Version: ${header['Sec-CH-UA-Platform-Version']}"); // e.g.. '10'
print("Sec-CH-UA:                  ${header['Sec-CH-UA']}");                  // e.g.. '"SampleApp"; v="1.0.0"'
print("Sec-CH-UA-Full-Version:     ${header['Sec-CH-UA-Full-Version']}");     // e.g.. '1.0.0'
print("Sec-CH-UA-Mobile:           ${header['Sec-CH-UA-Mobile']}");           // e.g.. '?1' (true) or '?0' (false)

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट