5๋ถ ์์ Flutter-Web Bridge ์์ํ๊ธฐ
# JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ
cp lib/flutter-bridge.js your-project/src/utils/
# TypeScript ์ฌ์ฉ ์
cp lib/flutter-bridge.d.ts your-project/src/utils/
<script src="./flutter-bridge.js"></script>
<script>
const bridge = new FlutterBridge({ debug: true });
async function getLocation() {
const location = await bridge.getLocation();
console.log('์์น:', location);
}
</script>
<script setup>
import FlutterBridge from './utils/flutter-bridge.js';
const bridge = new FlutterBridge({ debug: true });
async function getLocation() {
const location = await bridge.getLocation();
console.log('์์น:', location);
}
</script>
import FlutterBridge from './utils/flutter-bridge.js';
const bridge = new FlutterBridge({ debug: true });
function App() {
const getLocation = async () => {
const loc = await bridge.getLocation();
console.log(loc);
};
return <button onClick={getLocation}>์์น</button>;
}
dependencies:
flutter:
sdk: flutter
webview_flutter: ^4.4.2
flutter_local_notifications: ^16.3.0
geolocator: ^10.1.0
permission_handler: ^11.1.0
image_picker: ^1.0.5
home_widget: ^0.4.1
device_info_plus: ^9.1.1
shared_preferences: ^2.2.2
cd flutter_project
flutter pub get
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
const location = await bridge.getLocation();
// { lat: 37.123, lng: 127.456, accuracy: 10 }
const photo = await bridge.takePhoto();
// Base64 ์ธ์ฝ๋ฉ๋ ์ด๋ฏธ์ง
await bridge.showNotification('์ ๋ชฉ', '๋ด์ฉ');
await bridge.saveData('user', { name: 'John' });
const user = await bridge.loadData('user');
const info = await bridge.getDeviceInfo();
// { platform: 'android', model: 'SM-G991N', version: '13' }
if (bridge.isAvailable()) {
console.log('Flutter ๋ธ๋ฆฟ์ง ์ฐ๊ฒฐ๋จ');
} else {
console.log('๋ธ๋ผ์ฐ์ ๋ชจ๋');
}
const bridge = new FlutterBridge({
debug: true,
timeout: 20000 // 20์ด
});
๐ ์๋ฃ!
์ด์ ์น ๊ฐ๋ฐ ์ง์๋ง์ผ๋ก ๋ค์ดํฐ๋ธ ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค!