Install

NPM

npm install native-fn

ES Module

import Native from "native-fn";

CDN

<script src="https://cdn.jsdelivr.net/npm/native-fn/dist/native.umd.min.js"></script>

Native

11111

Native.App

22222

Native.App.open

Native.App.open(options)

33333

Parameters
options AppOpenOptions
44444
Returns
Promise<AppOpenState>
55555
Example
try {
    const result = await Native.App.open({
        android: {
            scheme: 'ms-excel://',
            packageName: 'com.microsoft.office.excel',
            allowAppStore: true,
            // allowWebStore: false,
            // intent: 'intent://#Intent;scheme=ms-excel;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;package=com.microsoft.office.excel;end',
            // fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',
            // timeout: 1000,
        },
        ios: {
            scheme: 'ms-excel://',
            trackId: '586683407',
            allowAppStore: true,
            // allowWebStore: false,
            // universal: '',
            // bundleId: 'com.microsoft.Office.Excel',
            // fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',
            // timeout: 2000,
        },
        windows: {
            scheme: 'ms-excel://',
            productId: 'cfq7ttc0pr28',
            allowAppStore: true,
            // allowWebStore: false,
            // fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',
            // timeout: 750,
        },
        macos: {
            scheme: 'ms-excel://',
            trackId: '462058435',
            allowAppStore: true,
            // allowWebStore: false,
            // bundleId: 'com.microsoft.Excel',
            // fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',
            // timeout: 750,
        }
    });

    switch (result) {
        case Native.App.Constants.AppOpenState.Scheme:
            console.log('Opened successfully via app scheme.');
            break;
        case Native.App.Constants.AppOpenState.Universal:
            console.log('Opened successfully via universal link.');
            break;
        case Native.App.Constants.AppOpenState.Intent:
            console.log('Opened successfully via Android intent.');
            break;
        case Native.App.Constants.AppOpenState.Fallback:
            console.log('Opened successfully via fallback URL.');
            break;
        case Native.App.Constants.AppOpenState.Store:
            console.log('Opened successfully via store URL.');
            break;
        default:
            break;
    }
} catch (e) {
    console.error(e.message);
}
Try it out
Android
iOS 2.0+
Windows
MacOS 10.0+
Android
iOS 9.0+
Android
iOS
MacOS 10.0+
iOS
MacOS 10.0+
Windows 8+

                            

Native.App.setting

Native.App.setting(type)

33333

Parameters
type SettingType
444444
Returns
Promise<void>
555555
Example
try {
    await Native.App.setting(Native.App.Constants.SettingType.General);

    console.log('Opened successfully.');
} catch (e) {
    console.error('Failed to open.');
}
Try it out
Android
Windows 10+
MacOS 10.10+

                            

Native.App.messenger

Native.App.messenger.telephone(options)
Native.App.messenger.message(options)
Native.App.messenger.mail(options)

33333

Parameters
options MessengerOpenOptions
444444
Returns
Promise<void>
555555
Example
try {
    await Native.App.messenger.mail({
        to: ['foo@gmail.com', 'bar@gmail.com'],
        cc: ['baz@gmail.com'],
        bcc: ['qux@gmail.com'],
        subject: 'Hello, world!',
        body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n'
            + 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n'
            + 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n'
            + 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
    });

    console.log('Opened successfully.');
} catch (e) {
    console.error('Failed to open.');
}
Try it out

                            

Native.App.file

Native.App.file(options)

33333

Parameters
options MessengerOpenOptions
444444
Returns
Promise<File[]>
555555
Example
try {
    await Native.App.file();

    console.log('Opened successfully.');
} catch (e) {
    console.error('Failed to open.');
}
Try it out

                            

Native.App.contact

Native.App.contact(options)

33333

Parameters
options MessengerOpenOptions
444444
Returns
Promise<Contact[]>
555555
Example
try {
    await Native.App.contact();

    console.log('Opened successfully.');
} catch (e) {
    console.error('Failed to open.');
}
Try it out

                            

Native.Appearance

22222

Native.Appearance.value

get Native.Appearance.value

33333

Returns
Appearances
55555
Example
console.log(Native.Appearance.value);
Try it out

                            

Native.Appearance.onchange

Native.Appearance.onchange(listener, options)

33333

Parameters
listener (appearance?: Appearances) => void
444444
options boolean | AddEventListenerOptions
444444
Returns
() => void
555555
Example
Native.Appearance.onchange(
    function (value) {
        console.log(value);
    }, {
        once: true,
    }
);
Try it out

                            

Native.Clipboard

22222

Native.Clipboard.copy

Native.Clipboard.copy(item)

33333

Parameters
item any
44444
Returns
Promise<boolean>
55555
Example
try {
    const result = await Native.Clipboard.copy('Hello world!');

    if (result) console.log('Copied successfully.');
    else console.error('Failed to copy.');
} catch (e) {
    console.error('Failed to copy.');
}
Try it out


                                

Native.Clipboard.paste

Native.Clipboard.paste()

33333

Returns
Promise<string>
555555
Example
try {
    console.log(await Native.Clipboard.paste());
} catch (e) {
    console.error('Failed to paste.');
}
Try it out

                            

Native.Dimension

22222

Native.Dimension.value

get Native.Dimension.value

33333

Returns
Dimensions
55555
Example
console.log(Native.Dimension.value);
Try it out

                            

Native.Dimension.onchange

Native.Dimension.onchange(listener, options)

33333

Parameters
listener (dimension?: Dimensions) => void
444444
options boolean | AddEventListenerOptions
444444
Returns
() => void
555555
Example
Native.Dimension.onchange(
    function (value) {
        console.log(value);
    }, {
        once: true,
    }
);
Try it out

                            

Native.Fullscreen

22222

Native.Fullscreen.enable

get Native.Fullscreen.enable

33333

Returns
boolean
55555
Example
console.log(Native.Fullscreen.enable);
Try it out

                            

Native.Fullscreen.element

get Native.Fullscreen.element

33333

Returns
Element | null
55555
Example
console.log(Native.Fullscreen.element);
Try it out

                            

Native.Fullscreen.isFullscreen

get Native.Fullscreen.isFullscreen

33333

Returns
boolean
55555
Example
console.log(Native.Fullscreen.isFullscreen);
Try it out

                            

Native.Fullscreen.request

Native.Fullscreen.request(target, options)

33333

Parameters
target Element
444444
options FullscreenOptions
444444
Returns
Promise<void>
555555
Example
try {
    await Native.Fullscreen.request(window.document.documentElement);

    console.log('Opened successfully.');
} catch (e) {
    console.error('Failed to open.');
}}
Try it out

                            

Native.Fullscreen.exit

Native.Fullscreen.exit()

33333

Returns
Promise<void>
555555
Example
try {
    await Native.Fullscreen.exit();

    console.log('Opened successfully.');
} catch (e) {
    console.error('Failed to open.');
}}
Try it out

                            

Native.Fullscreen.toggle

Native.Fullscreen.toggle(target, options)

33333

Parameters
target Element
444444
options FullscreenOptions
444444
Returns
Promise<void>
555555
Example
try {
    await Native.Fullscreen.toggle(window.document.documentElement);

    console.log('Opened successfully.');
} catch (e) {
    console.error('Failed to open.');
}}
Try it out

                            

Native.Fullscreen.onchange

Native.Fullscreen.onchange(listener, options)

33333

Parameters
listener (event: Event) => void
444444
options boolean | AddEventListenerOptions
444444
Returns
() => void
555555
Example
Native.Fullscreen.onchange(
    function (value) {
        console.log(value);
    }, {
        once: true,
    }
);
Try it out

                            

Native.Fullscreen.onerror

Native.Fullscreen.onerror(listener, options)

33333

Parameters
listener (event: Event) => void
444444
options boolean | AddEventListenerOptions
444444
Returns
() => void
555555
Example
Native.Fullscreen.onerror(
    function (value) {
        console.log(value);
    }, {
        once: true,
    }
);
Try it out

                            

Native.Platform

22222

Native.Platform.os

get Native.Platform.os

33333

Returns
NameVersionPair<OS>
55555
Example
console.log(Native.Platform.os);
Try it out

                            

Native.Platform.engine

get Native.Platform.engine

33333

Returns
NameVersionPair<Engines>
55555
Example
console.log(Native.Platform.engine);
Try it out

                            

Native.Platform.browser

get Native.Platform.browser

33333

Returns
NameVersionPair<Browsers>
55555
Example
console.log(Native.Platform.browser);
Try it out

                            

Native.Platform.userAgent

get Native.Platform.userAgent

33333

Returns
string
55555
Example
console.log(Native.Platform.userAgent);
Try it out

                            

Native.Platform.locale

get Native.Platform.locale

33333

Returns
Locale
55555
Example
console.log(Native.Platform.locale);
Try it out

                            

Native.Platform.device

get Native.Platform.device

33333

Returns
Devices
55555
Example
console.log(Native.Platform.device);
Try it out

                            

Native.Platform.renderer

get Native.Platform.renderer

33333

Returns
string
55555
Example
console.log(Native.Platform.renderer);
Try it out

                            

Native.Platform.isWebview

get Native.Platform.isWebview

33333

Returns
boolean
55555
Example
console.log(Native.Platform.isWebview);
Try it out

                            

Native.Platform.isNode

get Native.Platform.isNode

33333

Returns
boolean
55555
Example
console.log(Native.Platform.isNode);
Try it out

                            

Native.Platform.isStandalone

get Native.Platform.isStandalone

33333

Returns
boolean
55555
Example
console.log(Native.Platform.isStandalone);
Try it out