โ† ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

API ๋ฌธ์„œ

20๊ฐœ ์ด์ƒ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ๊ธฐ๋Šฅ ์ƒ์„ธ ๊ฐ€์ด๋“œ

๐Ÿ“ ์œ„์น˜ (Location)

getLocation()

ํ˜„์žฌ ๋””๋ฐ”์ด์Šค์˜ GPS ์œ„์น˜๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

{
  lat: number,      // ์œ„๋„
  lng: number,      // ๊ฒฝ๋„
  accuracy: number  // ์ •ํ™•๋„ (๋ฏธํ„ฐ)
}

์˜ˆ์ œ

const location = await bridge.getLocation();
console.log(`์œ„๋„: ${location.lat}, ๊ฒฝ๋„: ${location.lng}`);

๐Ÿ“ท ์นด๋ฉ”๋ผ & ๊ฐค๋Ÿฌ๋ฆฌ

takePhoto()

์นด๋ฉ”๋ผ๋กœ ์‚ฌ์ง„์„ ์ดฌ์˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

string - Base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์ด๋ฏธ์ง€

์˜ˆ์ œ

const photo = await bridge.takePhoto();
document.getElementById('img').src = `data:image/jpeg;base64,${photo}`;
pickImage()

๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

string - Base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์ด๋ฏธ์ง€

๐Ÿ“ข ์•Œ๋ฆผ (Notifications)

showNotification(title, body)

ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ

title string - ์•Œ๋ฆผ ์ œ๋ชฉ
body string - ์•Œ๋ฆผ ๋‚ด์šฉ

์˜ˆ์ œ

await bridge.showNotification('์ƒˆ ๋ฉ”์‹œ์ง€', '์•ˆ๋…•ํ•˜์„ธ์š”!');
showToast(message)

ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ

message string - ํ‘œ์‹œํ•  ๋ฉ”์‹œ์ง€

๐Ÿ’พ ์Šคํ† ๋ฆฌ์ง€ (Storage)

saveData(key, value)

๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ

key string - ์ €์žฅํ•  ํ‚ค
value any - ์ €์žฅํ•  ๊ฐ’ (์ž๋™์œผ๋กœ JSON์œผ๋กœ ๋ณ€ํ™˜)
loadData(key)

๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

any - ์ €์žฅ๋œ ๊ฐ’ (JSON ํŒŒ์‹ฑ๋จ)

๐Ÿ“ฑ ๋””๋ฐ”์ด์Šค ์ •๋ณด

getDeviceInfo()

ํ˜„์žฌ ๋””๋ฐ”์ด์Šค์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

{
  platform: string,    // 'android' | 'ios'
  model: string,       // ๋””๋ฐ”์ด์Šค ๋ชจ๋ธ๋ช…
  version: string,     // OS ๋ฒ„์ „
  appVersion: string   // ์•ฑ ๋ฒ„์ „
}

๐Ÿ”— ๊ธฐํƒ€ ๊ธฐ๋Šฅ

vibrate(duration)

๋””๋ฐ”์ด์Šค๋ฅผ ์ง„๋™์‹œํ‚ต๋‹ˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ

duration number - ์ง„๋™ ์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
openUrl(url)

์™ธ๋ถ€ URL์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ฝ๋‹ˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ

url string - ์—ด URL
goBack()

์›น๋ทฐ ํžˆ์Šคํ† ๋ฆฌ ๋’ค๋กœ ๊ฐ€๊ธฐ

๐Ÿ  ํ™ˆ ์œ„์ ฏ

updateWidget(data)

ํ™ˆ ํ™”๋ฉด ์œ„์ ฏ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ

data object - ์œ„์ ฏ์— ํ‘œ์‹œํ•  ๋ฐ์ดํ„ฐ

โš™๏ธ ๋ธŒ๋ฆฟ์ง€ ์„ค์ •

isAvailable()

Flutter ๋ธŒ๋ฆฟ์ง€๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

boolean - ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€

์˜ˆ์ œ

if (bridge.isAvailable()) {
    console.log('๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์—์„œ ์‹คํ–‰ ์ค‘');
} else {
    console.log('๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ ์ค‘');
}

ํ†ต์‹  ๊ฐ€์ด๋“œ์—์„œ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ ํ™•์ธํ•˜๊ธฐ โ†’