vue+cordovaプロジェクトパッケージによるプラットフォーム間開発(一)
6146 ワード
環境準備
sudo npm i cordova -g
sudo npm i webpack -g
sudo npm i vue-cli -g
cordovaシェルフを作成する
$ cordova create test com.test.cn HelloWorld
$ cd test
$ cordova platform add android
$ cordova platform add ios
corodvaプロジェクトの下にvueプロジェクトを作成する
$ vue init webpack src -yes
$ cd src
$ npm install
上記のコマンドを実行すると、プロジェクト構造は次のとおりです.
インストール構成vue-cordova
$ npm i vue-cordova -s
// vue-cordova
import VueCordova from 'vue-cordova'
Vue.use(VueCordova)
build: {
// Template for index.html
index: path.resolve(__dirname, '../../www/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../../www'),
assetsSubDirectory: '',
assetsPublicPath: './',
// , true, app
productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
bundleAnalyzerReport: process.env.npm_config_report
}
<script src="cordova.js">script>
vueでcordovaプラグインを呼び出し、ここでcameraを呼び出します。
cordova plugin add cordova-plugin-camera
cameraTakePicture: function (mySourceType) {
navigator.camera.getPicture(this.onSuccess, this.onFail, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
encodingType: Camera.EncodingType.JPEG,
sourceType: mySourceType
})
},
パラメータの説明:sourceType
PHOTOLIBRARY 0 。
CAMERA 1 。
SAVEDPHOTOALBUM 2 。
destinationType
DATA_URL 0 base64 。
FILE_URI 1 URI。
NATIVE_URI 2 URI。
dataURLtoFile: function (dataurl, filename) {
var arr = dataurl.split(',')
var mime = arr[0].match(/:(.*?);/)[1]
var bstr = window.atob(arr[1])
var n = bstr.length
var u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
var blob = new Blob([u8arr], {type: mime})
blob.lastModifiedDate = new Date()
blob.name = filename
return blob
}
呼び出し:
var file = this.dataURLtoFile('data:image/jpeg;base64,' + imageURI, 'test.jpeg')
アプリを梱包し、携帯電話にインストールしてテストします
jdkとandroid sdkが構成されている場合は、コマンドを直接実行してパッケージ化できます.
cordova build android
パッケージios
platform/iosに入りxcodeを使用してファイルTestを開く.xcodeprojは、xcodeでパッケージ化すればよい
△xcodeパッケージが完了していません。。
転載先:https://juejin.im/post/5bdddc60e51d45548f298982