internet_permission 1.0.5
internet_permission: ^1.0.5 copied to clipboard
A Flutter plugin for managing internet permissions and checking network connectivity. Check if device is connected to internet, get connection type (WiFi, Mobile, Ethernet, VPN).
Internet Permission #
Flutter loyihalari uchun internet ruxsatlarini boshqarish va tarmoq ulanishini tekshirish package'i.
Xususiyatlar #
✅ Internet ulanishini tekshirish
✅ Ulanish turini aniqlash (WiFi, Mobile, Ethernet, VPN)
✅ Internet ruxsatlarini tekshirish
✅ Platform versiyasini olish
✅ Avtomatik setup script
O'rnatish #
1. pubspec.yaml ga qo'shing: #
dependencies:
internet_permission: ^1.0.5
Yoki:
flutter pub add internet_permission
2. Ruxsatlarni avtomatik qo'shing: #
dart run internet_permission:setup_permissions
Bu buyruq avtomatik ravishda:
- ✅ Android
AndroidManifest.xmlgaINTERNETvaACCESS_NETWORK_STATEqo'shadi - ✅ iOS
Info.plistgaNSAppTransportSecurityqo'shadi
3. Pub get qiling: #
flutter pub get
Foydalanish #
import 'package:flutter/material.dart';
import 'package:internet_permission/internet_permission.dart';
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final _permission = InternetPermission();
String _status = 'Tekshirilmoqda...';
@override
void initState() {
super.initState();
_checkInternet();
}
Future<void> _checkInternet() async {
// Internet bormi?
final isConnected = await _permission.isConnected();
// Ulanish turi
final type = await _permission.getConnectionType();
// 'wifi', 'mobile', 'ethernet', 'vpn', 'none'
// Ruxsat bormi?
final hasPermission = await _permission.hasInternetPermission();
setState(() {
_status = '''
Internet: ${isConnected ? '✅ Ulangan' : '❌ Yo\'q'}
Turi: $type
Ruxsat: ${hasPermission ? '✅ Bor' : '❌ Yo\'q'}
''';
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Internet Test')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(_status, textAlign: TextAlign.center),
SizedBox(height: 20),
ElevatedButton(
onPressed: _checkInternet,
child: Text('Qayta tekshirish'),
),
],
),
),
),
);
}
}
API #
isConnected() → Future<bool> #
Internet ulanishini tekshiradi.
final connected = await InternetPermission().isConnected();
getConnectionType() → Future<String> #
Ulanish turini qaytaradi: 'wifi', 'mobile', 'ethernet', 'vpn', 'none'
final type = await InternetPermission().getConnectionType();
if (type == 'wifi') {
print('WiFi orqali ulangan');
}
hasInternetPermission() → Future<bool> #
Internet ruxsati borligini tekshiradi.
final hasPermission = await InternetPermission().hasInternetPermission();
getPlatformVersion() → Future<String?> #
Platform versiyasini qaytaradi.
final version = await InternetPermission().getPlatformVersion();
print(version); // "Android 13" yoki "iOS 16.0"
Qo'lda sozlash #
Agar avtomatik script ishlamasa, qo'lda qo'shing:
Android #
android/app/src/main/AndroidManifest.xml ga qo'shing:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application>
<!-- ... -->
</application>
</manifest>
iOS #
ios/Runner/Info.plist ga qo'shing (</dict></plist> dan oldin):
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
⚠️ Production uchun: Faqat HTTPS ishlatish tavsiya etiladi.
Xatoliklarni hal qilish #
Script ishlamasa #
# 1. Tozalash
flutter clean
# 2. Qayta setup
dart run internet_permission:setup_permissions
# 3. Pub get
flutter pub get
Android build xatosi #
cd android
gradlew clean
cd ..
flutter clean
flutter pub get
iOS build xatosi #
cd ios
pod deintegrate
pod install
cd ..
flutter clean
flutter pub get
Misol #
To'liq ishlaydigan misol uchun example papkasiga qarang:
cd example
flutter run
Hissa qo'shish #
Pull request'lar xush kelibsiz! Katta o'zgarishlar uchun avval issue oching.
Litsenziya #
MIT License - batafsil LICENSE faylida.
Muallif #
AbubakrFlutter
- GitHub: @AbubakrFlutter
- Repository: internet_permission
Changelog #
1.0.2 #
- ✨ Avtomatik setup script qo'shildi
- 📝 README yangilandi
- 🐛 Bug fix'lar
1.0.1 #
- 📱 Android va iOS qo'llab-quvvatlash
- ✅ Internet holat tekshirish
- 🔌 Ulanish turi aniqlash
1.0.0 #
- 🎉 Birinchi release