flutter_v2ray는 Android 및 iOS 기기에서 V2Ray 연결을 가능하게 하는 Flutter 플러그인으로, VPN 모드와 프록시 전용 구성 모두를 지원합니다. 개발자들이 앱에 안전하고 사용자 정의 가능한 네트워크 라우팅을 통합할 수 있게 하여 제한된 콘텐츠 또는 개인 네트워크 서비스에 접근할 수 있도록 합니다. 이 플러그인은 V2Ray 연결을 설정하고 관리하기 위한 간단한 인터페이스를 제공하며, 신뢰할 수 있는 성능을 위해 네이티브 플랫폼 기능을 활용합니다. 고급 네트워킹 기능과 강력한 개인정보 보호 제어가 필요한 애플리케이션에서 특히 유용합니다.
import'package:flutter_v2ray/flutter_v2ray.dart';
// v2ray share link like vmess://, vless://, ...String link = "link_here";
V2RayURL parser = FlutterV2ray.parseFromURL(link);
// Remark of the v2rayprint(parser.remark);
// generate full v2ray configuration (json)print(parser.getFullConfiguration());
Edit Configuration
// Change v2ray listening port
parser.inbound['port'] = 10890;
// Change v2ray listening host
parser.inbound['listen'] = '0.0.0.0';
// Change v2ray log level
parser.log['loglevel'] = 'info';
// Change v2ray dns
parser.dns = {
"servers": ["1.1.1.1"]
};
// and ...// generate configuration with new settings
parser.getFullConfiguration()
Making V2Ray connection
import'package:flutter_v2ray/flutter_v2ray.dart';
finalFlutterV2ray flutterV2ray = FlutterV2ray(
onStatusChanged: (status) {
// do something
},
);
// You must initialize V2Ray before using it.await flutterV2ray.initializeV2Ray();
// v2ray share link like vmess://, vless://, ...String link = "link_here";
V2RayURL parser = FlutterV2ray.parseFromURL(link);
// Get Server Delayprint('${flutterV2ray.getServerDelay(config: parser.getFullConfiguration())}ms');
// Permission is not required if you using proxy onlyif (await flutterV2ray.requestPermission()){
flutterV2ray.startV2Ray(
remark: parser.remark,
// The use of parser.getFullConfiguration() is not mandatory,// and you can enter the desired V2Ray configuration in JSON format
config: parser.getFullConfiguration(),
blockedApps: null,
bypassSubnets: null,
proxyOnly: false,
);
}
// Disconnect
flutterV2ray.stopV2Ray();
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
}
}
And replace it with the following configuration info:
splits {
abi {
enable true
reset()
//noinspection ChromeOsAbiSupport
include "x86_64", "armeabi-v7a", "arm64-v8a"
universalApk true
}
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
ndk {
//noinspection ChromeOsAbiSupport
abiFilters "x86_64", "armeabi-v7a", "arm64-v8a"
debugSymbolLevel 'FULL'
}
}
}