Ionic Meetup
#22 Tokyo



Vue & Capacitor

Build native mobile apps with web technology and Vue


Install Capacitor.

Add Capacitor to your project and create a config for your app

npm install @capacitor/core @capacitor/cli
npx cap init [name] [id] --web-dir=dist

Build the Web App.

The compiled web assets will be copied into each Capacitor native platform during the next step.

npm run build

Install the native platforms you want to target.


Capacitor's native projects exist in their own top-level folders and should be considered part of your app (check them into source control).

npm i @capacitor/ios @capacitor/android
npx cap add android
npx cap add ios

Adding calls to Native APIs

With Capacitor installed, adding calls to native device features is as straight forward as calling other JavaScript methods

  <p>Your location is:</p>
  <p>Latitude: {{ }}</p>
  <p>Longitude: {{ loc.long }}</p>

  <button @click="getCurrentPosition">
    Get Current Location

import { defineComponent, ref } from 'vue';
import { Geolocation } from '@capacitor/geolocation';
export default defineComponent({
  setup() {
    const loc = ref<{
      lat: null | number;
      long: null | number;
      lat: null,
      long: null,

    const getCurrentPosition = async () => {
      const pos = await Geolocation.getCurrentPosition();
      loc.value = {
        lat: pos.coords.latitude,
        long: pos.coords.longitude,
    return { getCurrentPosition, loc };

Continue your Capacitor Journey.

This is only the beginning. Learn more about the Capacitor development workflow or using more native APIs .

The latest updates. Delivered monthly.

Capacitor is getting better every day. Sign up for a monthly email on the latest updates, releases, articles, and news!