Platforms and setup
Native platforms: ios, android.
- All native action builders require NaverMapLaunchParams(androidAppName: Android applicationId, iosAppName: iOS bundleId), with nonempty values.
- Native provider coordinate limits: latitude 31.43..44.35; longitude 122.37..132.00; zoom 4..20; at most five waypoints.
- No documented public web-routing contract: directions/navigation fallback opens a destination marker, not a route.
- Open/safe-driving fallbacks use provider homepage.
Public actions
NaverMap.openNaverMap.viewNaverMap.searchNaverMap.busSearchNaverMap.directionsWithCoordsNaverMap.navigateNaverMap.safeDriving
NaverMap.open
factory NaverMap.open({final bool fallbackToStore = false})
Launch with DeeplinkX.launchApp. Native platforms: ios, android. Action web fallback: available. Store-fallback flag: supported; opt in explicitly.
| Parameter | Type | Required | Default |
|---|---|---|---|
fallbackToStore | bool | No | false |
NaverMap.view
static NaverMapViewAction view({ required final Coordinate coordinate, required final NaverMapLaunchParams launchParams, final String? title, final int zoom = 16, final bool fallbackToStore = false, })
Launch with DeeplinkX.launchAction. Native platforms: ios, android. Action web fallback: available. Store-fallback flag: supported; opt in explicitly.
| Parameter | Type | Required | Default |
|---|---|---|---|
coordinate | Coordinate | Yes | — |
launchParams | NaverMapLaunchParams | Yes | — |
title | String? | No | — |
zoom | int | No | 16 |
fallbackToStore | bool | No | false |
NaverMap.search
static NaverMapSearchAction search({ required final String query, required final NaverMapLaunchParams launchParams, final bool fallbackToStore = false, })
Launch with DeeplinkX.launchAction. Native platforms: ios, android. Action web fallback: available. Store-fallback flag: supported; opt in explicitly.
| Parameter | Type | Required | Default |
|---|---|---|---|
query | String | Yes | — |
launchParams | NaverMapLaunchParams | Yes | — |
fallbackToStore | bool | No | false |
NaverMap.busSearch
static NaverMapBusSearchAction busSearch({ required final String query, required final NaverMapLaunchParams launchParams, final bool fallbackToStore = false, })
Launch with DeeplinkX.launchAction. Native platforms: ios, android. Action web fallback: available. Store-fallback flag: supported; opt in explicitly.
| Parameter | Type | Required | Default |
|---|---|---|---|
query | String | Yes | — |
launchParams | NaverMapLaunchParams | Yes | — |
fallbackToStore | bool | No | false |
NaverMap.directionsWithCoords
static NaverMapDirectionsWithCoordsAction directionsWithCoords({ required final Coordinate destination, required final NaverMapLaunchParams launchParams, final Coordinate? origin, final String? destinationTitle, final String? originTitle, final List<NaverMapWaypoint> waypoints = const [], final NaverMapTravelMode mode = NaverMapTravelMode.driving, final bool fallbackToStore = false, })
Launch with DeeplinkX.launchAction. Native platforms: ios, android. Action web fallback: available. Store-fallback flag: supported; opt in explicitly.
| Parameter | Type | Required | Default |
|---|---|---|---|
destination | Coordinate | Yes | — |
launchParams | NaverMapLaunchParams | Yes | — |
origin | Coordinate? | No | — |
destinationTitle | String? | No | — |
originTitle | String? | No | — |
waypoints | List<NaverMapWaypoint> | No | const [] |
mode | NaverMapTravelMode | No | NaverMapTravelMode.driving |
fallbackToStore | bool | No | false |
NaverMap.navigate
static NaverMapNavigationAction navigate({ required final Coordinate destination, required final NaverMapLaunchParams launchParams, final Coordinate? origin, final String? destinationTitle, final String? originTitle, final List<NaverMapWaypoint> waypoints = const [], final bool fallbackToStore = false, })
Launch with DeeplinkX.launchAction. Native platforms: ios, android. Action web fallback: available. Store-fallback flag: supported; opt in explicitly.
| Parameter | Type | Required | Default |
|---|---|---|---|
destination | Coordinate | Yes | — |
launchParams | NaverMapLaunchParams | Yes | — |
origin | Coordinate? | No | — |
destinationTitle | String? | No | — |
originTitle | String? | No | — |
waypoints | List<NaverMapWaypoint> | No | const [] |
fallbackToStore | bool | No | false |
NaverMap.safeDriving
static NaverMapSafeDrivingAction safeDriving({ required final NaverMapLaunchParams launchParams, final bool fallbackToStore = false, })
Launch with DeeplinkX.launchAction. Native platforms: ios, android. Action web fallback: available. Store-fallback flag: supported; opt in explicitly.
| Parameter | Type | Required | Default |
|---|---|---|---|
launchParams | NaverMapLaunchParams | Yes | — |
fallbackToStore | bool | No | false |
Provider setup and examples
DeeplinkX supports NAVER Map on iOS and Android for map display, integrated and bus search, route planning, turn-by-turn navigation, and safe-driving mode.
References
Calling-App Identifiers
NAVER requires every native action URL to identify the calling app. Android uses the app's applicationId; iOS uses its bundle ID. These values are normally different, so DeeplinkX keeps both in one immutable value:
const naverLaunchParams = NaverMapLaunchParams(
androidAppName: 'com.example.myapp',
iosAppName: 'com.example.myApp',
);
Empty identifiers are rejected before a link is built.
Available Actions
Open NAVER Map
await deeplinkX.launchApp(NaverMap.open());
View a Map or Marker
Omit title to center the main map. Supply a non-empty title to show a marker.
await deeplinkX.launchAction(
NaverMap.view(
coordinate: const Coordinate(latitude: 37.5209436, longitude: 127.1230074),
title: 'Olympic Park',
zoom: 16,
launchParams: naverLaunchParams,
),
);
Search
await deeplinkX.launchAction(
NaverMap.search(
query: 'Gangnam Station',
launchParams: naverLaunchParams,
),
);
await deeplinkX.launchAction(
NaverMap.busSearch(
query: '222',
launchParams: naverLaunchParams,
),
);
Directions With Coordinates
await deeplinkX.launchAction(
NaverMap.directionsWithCoords(
origin: const Coordinate(latitude: 37.5665, longitude: 126.9780),
originTitle: 'Seoul City Hall',
destination: const Coordinate(latitude: 37.5209436, longitude: 127.1230074),
destinationTitle: 'Olympic Park',
waypoints: const [
NaverMapWaypoint(
coordinate: Coordinate(latitude: 37.464007, longitude: 126.9522394),
title: 'Seoul National University',
),
],
mode: NaverMapTravelMode.publicTransit,
launchParams: naverLaunchParams,
),
);
NAVER Map supports driving, public transit, walking, and bicycling routes. Omit the origin to use the current location. Up to five ordered waypoints are supported.
Navigation and Safe Driving
await deeplinkX.launchAction(
NaverMap.navigate(
destination: const Coordinate(latitude: 37.5209436, longitude: 127.1230074),
destinationTitle: 'Olympic Park',
launchParams: naverLaunchParams,
),
);
await deeplinkX.launchAction(
NaverMap.safeDriving(launchParams: naverLaunchParams),
);
Provider Limits
The official native URI contract accepts latitude 31.43..44.35, longitude 122.37..132.00, and map zoom 4..20. DeeplinkX validates these limits, requires non-empty searches and supplied names, and rejects more than five waypoints.
Platform Configuration
iOS
Add nmap to LSApplicationQueriesSchemes:
<string>nmap</string>
Android
Add the package and scheme query inside <queries>:
<package android:name="com.nhn.android.nmap" />
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="nmap" />
</intent>
Native Android actions use ACTION_VIEW, CATEGORY_BROWSABLE, the NAVER Map package, and a new-task flag.
Native URI Formats
- Main map:
nmap://map?lat={lat}&lng={lng}&zoom={zoom}&appname={appId} - Marker:
nmap://place?lat={lat}&lng={lng}&name={title}&appname={appId} - Search:
nmap://search?query={query}&appname={appId} - Bus search:
nmap://search/bus?query={busNumber}&appname={appId} - Route:
nmap://route/{mode}?dlat={lat}&dlng={lng}&...&appname={appId} - Navigation:
nmap://navigation?dlat={lat}&dlng={lng}&...&appname={appId} - Safe driving:
nmap://navigation?appname={appId}
Fallback Behavior
- DeeplinkX attempts the platform-specific native URL.
- When
fallbackToStoreis enabled, it can redirect to Google Play or the iOS App Store if NAVER Map is unavailable. - View actions preserve their coordinate, title, and zoom on NAVER's web map.
- Search and bus search preserve their query on NAVER's web search.
- NAVER does not document a public web-routing contract, so route and navigation actions fall back to the destination marker instead of inventing an unsupported route URL.
- Open and safe-driving actions use the NAVER Map homepage because they have no portable web payload.