vue && cordova

suhanLee·2022년 5월 16일
0

cordova

목록 보기
1/16

웹앱 + 코르도바(플러그인)

01. Vue cli 설치 (전역)

$ npm install -g @vue/cli

02. Vue 프로젝트 생성

$ vue create my-app

03. Cordova 설치 (전역)

$ npm install -g cordova

04. 생성한 Vue 프로젝트 경로에서 cordova 추가

경로 : my-app

$ cd my-app
$ vue add cordova

05. 생성된 cordova 프로젝트 경로에서 필요한 플러그인 설치 (예시 : 연락처)

경로 : my-app/src-cordova

$ cd src-cordova
$ cordova plugin add cordova-plugin-contacts

06. Vue로 작성된 코드를 코르도바 프로젝트로 업데이트 (준비)

경로 : my-app/src

$ cd src
$ npm run cordova-prepare 

07. cordova 프로젝트 빌드 (브라우저, 안드로이드, 아이폰...)

경로 : my-app/src-cordova/

$ cd src-cordova
$ cordova run browser //브라우저에서 실행
$ cordova run android //실제 디바이스
$ cordova emulate android // 에뮬레이터에서 실행

08. cordova 프로젝트 apk파일 생성

$ cordova build android --release 

경로는
프로젝트명/src-cordova/platforms/android/app/build/outputs/apk
에 생성된다

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sekterra&logNo=221414677608

$ npm i vue-cordova
//main.js
import VueCordova from 'vue-cordova';
Vue.use(VueCordva);


//myComponent.vue
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <select>
      <option value="">선택</option>
      <option v-for="item in phoneList" :key="item.id">
        이름 : {{item.name}}
        전화번호 : {{item.phoneNumber.number}}
        일반번호 : {{item.phoneNumber.normalizedNumber}}
        전화형식 : {{item.phoneNumber.type}}
      </option>
    </select>
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'
import Vue from 'vue';
export default {
  name: 'App',
  data(){
    return{
      cordova : Vue.cordova,
      phoneList : [],
    }
  },
  components: {
    HelloWorld
  },
  methods:{
    onDeviceReady : ()=>{
      return new Promise((resolve, reject) => {
        navigator.contactsPhoneNumbers.list((contacts) =>{
            resolve(contacts);
        }, (error) =>{
            console.error(error);
            reject(error);
        });
      })
      
    }
  },
  created(){
    var self = this;
    this.cordova.on('deviceready',()=>{
      self.onDeviceReady()
      .then((contacts)=>{
          for(var i = 0; i < contacts.length; i++) {
              console.log(contacts[i].id + " - " + contacts[i].displayName);
              for(var j = 0; j < contacts[i].phoneNumbers.length; j++) {
                  var phone = contacts[i].phoneNumbers[j];
                  console.log("===> " + phone.type + "  " + phone.number + " (" + phone.normalizedNumber+ ")");
                  //alert(phone.number)
                  this.phoneList.push({
                    id: contacts[i].id,
                    name:contacts[i].displayName,
                    phoneNumber : phone,
                  });
              }
            }
      })
      .catch((error)=>{
        console.log(error);
      })
    });
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>


  

https://www.npmjs.com/package/cordova-plugin-contacts-phonenumbers

뷰에서
플러그인 사용법 + 디버깅 확인하기

시스템변수
ANDROID_HOME
%LOCALAPPDATA%\Android\Sdk
ANDROID_SDK_ROOT
C:\Users\djdrk\AppData\Local\Android\Sdk

0개의 댓글