Browse Source

添加安卓原生插件

master
Penny 3 years ago
parent
commit
45d901e8fc
  1. 6
      App.vue
  2. 63
      manifest.json
  3. BIN
      nativeplugins/test/android/scanCode-release.aar
  4. 5
      pages/scan/Book.vue
  5. 69
      pages/scan/Scan.nvue
  6. 398
      pages/setting/Setting.vue

6
App.vue

@ -1,13 +1,13 @@
<script>
export default {
onLaunch: function() {
console.log('App Launch')
//console.log('App Launch')
},
onShow: function() {
console.log('App Show')
//console.log('App Show')
},
onHide: function() {
console.log('App Hide')
//console.log('App Hide')
}
}
</script>

63
manifest.json

@ -3,7 +3,7 @@
"appid" : "__UNI__44D25EC",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"versionCode" : 101,
"transformPx" : false,
/* 5+App */
"app-plus" : {
@ -38,12 +38,67 @@
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
],
"minSdkVersion" : 21,
"targetSdkVersion" : 28
},
/* ios */
"ios" : {},
"ios" : {
"dSYMs" : false
},
/* SDK */
"sdkConfigs" : {}
"sdkConfigs" : {
"ad" : {}
}
},
"nativePlugins" : {
"Mpaas-Scan" : {
"AppId" : "ALIPUB292A079010931",
"License" : "KXaY6vzdsbbpso9o+9XOdpbiWPfgWstqa2NFfXVxEJZ4sVFaH33wvGUvLELnwibqFU3LEeWQPm+nW5TOfHNIOVnrUVji+bZoDuRTvPGFnVupqKpZRiF3kNB76pXHy9LuqAkH0h/eI44ZapbQNj15/Jma4WR5bffSdNKuTUnbDiaQSpBp9A38TGeWJ222eQL+RjGvFm15MZntBou93IspOnN58cDAvk75A6hUydJupKqYDl7UgQurm5pRKvB0UMYQOFcymuUVJH6N8a8pyJkvgP98oy3MskMcdJtYAzbjbdQi8/4ZuhPwbjqhVqzM3Pq2ebA2QcH/zbGT4LuvnQKXLw==",
"WorkspaceId" : "default",
"__plugin_info__" : {
"name" : "支付宝原生扫码插件",
"description" : "支付宝原生扫码组件,包体积仅0.7MB,15分钟即可完成接入。同时,mPaaS提供「扫码分析」大盘",
"platforms" : "Android,iOS",
"url" : "https://ext.dcloud.net.cn/plugin?id=2636",
"android_package_name" : "uni.UNI44D25EC",
"ios_bundle_id" : "",
"isCloud" : true,
"bought" : 1,
"pid" : "2636",
"parameters" : {
"AppId" : {
"des" : "Android平台的AppId,请填写Android的config文件中的appId对应的值",
"key" : "mobilegw.appid",
"value" : ""
},
"License" : {
"des" : "Android平台的License,,请填写Android的config文件中的mpaasConfigLicense对应的值",
"key" : "mpaasConfigLicense",
"value" : ""
},
"WorkspaceId" : {
"des" : "Android平台的WorkspaceId,请填写Android的config文件中的workspaceId对应的值",
"key" : "workspaceId",
"value" : ""
}
}
}
},
"scanCode" : {
"__plugin_info__" : {
"name" : "scanCode",
"description" : "测试插件流程",
"platforms" : "Android",
"url" : "",
"android_package_name" : "",
"ios_bundle_id" : "",
"isCloud" : false,
"bought" : -1,
"pid" : "",
"parameters" : {}
}
}
}
},
/* */

BIN
nativeplugins/test/android/scanCode-release.aar

Binary file not shown.

5
pages/scan/Book.vue

@ -54,10 +54,13 @@
}
},
onLoad() {
this.loadPage();
},
methods: {
loadPage(){
console.log('11111')
}
}
}
</script>

69
pages/scan/Scan.vue → pages/scan/Scan.nvue

@ -1,13 +1,9 @@
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
</view>
<tn-button shape="round" backgroundColor="#01BEFF" fontColor="#080808" @click="jumpToPage('/pages/scan/Barcode')">跳转Barcode页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Book')">跳转Book页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Calendar')">跳转Calendar页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Contacts')">跳转Contacts页面</tn-button>
<tn-button shape="round" @clicksss="jumpToPage('/pages/scan/Contacts')">跳转Contacts页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Email')">跳转Email页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Location')">跳转Location页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Paypal')">跳转Paypal页面</tn-button>
@ -18,7 +14,10 @@
<tn-button shape="round" @click="jumpToPage('/pages/scan/Url')">跳转Url页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Wifi')">跳转Wifi页面</tn-button>
<!-- <tn-button type="primary" @click="scanCode()">扫码</tn-button> -->
<tn-button type="primary" @click="scanCode()">扫码</tn-button>
<tn-button type="primary" @click="testAdd">相加</tn-button>
<tn-toast ref="toast"></tn-toast>
</view>
</template>
@ -29,10 +28,23 @@
title: 'Scan'
}
},
onLoad() {
created() {
// this.scanCode();
},
methods: {
testAdd(){
const testModule = uni.requireNativePlugin('scanCode');
testModule.add({
a:1,
b:2
},res => {
uni.showToast({
title: '提示',
content: JSON.stringify(res)
})
})
},
//根据扫码返回结果判断跳转到哪个指定页面
jumpToPage(url){
uni.navigateTo({
@ -41,20 +53,41 @@
},
//扫码
scanCode(){
// 允许从相机和相册扫码
uni.scanCode({
success: function (res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
}
});
}
// scanCode(){
// // 允许从相机和相册扫码
// uni.scanCode({
// success: function (res) {
// console.log(JSON.stringify(res))
// console.log('条码类型:' + res.scanType);
// console.log('条码内容:' + res.result);
// }
// });
// }
scanCode() {
var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
mpaasScanModule.mpaasScan({
// 扫码识别类型,参数可多选,qrCode、barCode,不设置,默认识别所有
// 'scanType': ['qrCode', 'barCode'],
// 是否隐藏相册,默认false不隐藏
'hideAlbum': false,
},
(ret) => {
console.log(JSON.stringify(ret))
this.$refs.toast.show({
title: '支付成功',
content: JSON.stringify(ret),
icon: 'success',
duration: 2000
});
console.log('24123123')
})
},
}
}
</script>
<style>
<style lang="scss">
.content {
display: flex;
flex-direction: column;

398
pages/setting/Setting.vue

@ -2,136 +2,145 @@
<view class="content">
<!-- 顶部通用设置模块 -->
<view class="headLine">General Settings</view>
<tn-list-view :card="cardMode" class="settingList" unlined="all">
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Beep</view>
<view class="list-left-text-two">Beep when the scan is successfull.</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<tn-switch v-model="beepChecked" :inactiveValue="0" :activeValue="1"
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
<view>
<view class="headLine">General Settings</view>
<tn-list-view :card="cardMode" class="settingList" unlined="all">
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-circle-fill tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Beep</view>
<view class="list-left-text-two">Beep when the scan is successfull.</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<tn-switch v-model="beepChecked" :inactiveValue="0" :activeValue="1"
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Auto-copied to clipboard</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<tn-switch v-model="ClipboardCheked" :inactiveValue="0" :activeValue="1"
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Auto-copied to clipboard</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<tn-switch v-model="ClipboardCheked" :inactiveValue="0" :activeValue="1"
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Search Engine</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<!-- <tn-switch v-model="checked" :inactiveValue="0" :activeValue="1"></tn-switch> -->
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-search tn-color-gray"></view>
<view class="list-left-select-text">
<view class="list-left-select-text-one">Search Engine</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<text class="list-right-text">{{ webEngineLabel }}</text><text class="tn-icon-down-triangle list-right-icon" @click="openWebSelectView"></text>
<tn-select title="Select Browser" :confirmText="confirmText" :cancelText="cancelText"
v-model="webEngine" mode="single" :list="webEngineList" @confirm="selectWebEngine" :searchShow="searchEngineFlag" :searchPlaceholder="placeholderText"></tn-select>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Dark Mode</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<tn-switch v-model="DarkModeChecked" :inactiveValue="0" :activeValue="1"
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-moon-fill tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Dark Mode</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<tn-switch v-model="DarkModeChecked" :inactiveValue="0" :activeValue="1"
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Language options</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<!-- <tn-switch v-model="checked" :inactiveValue="0" :activeValue="1"></tn-switch> -->
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-english tn-color-gray"></view>
<view class="list-left-select-text">
<view class="list-left-select-text-one">Language options</view>
</view>
</view>
<!-- 右边操作按钮部分 -->
<view class="list-right">
<text class="list-right-text">{{ languageLabel }}</text><text class="tn-icon-down-triangle list-right-icon" @click="openLanguageSelectView"></text>
<tn-select title="Select Language" :confirmText="confirmText" :cancelText="cancelText"
v-model="language" mode="single" :list="languageList" @confirm="selectLanauage" :searchShow="searchLanguageFlag" :searchPlaceholder="placeholderText"></tn-select>
</view>
</view>
</view>
</tn-list-cell>
</tn-list-view>
</tn-list-cell>
</tn-list-view>
</view>
<!-- 底部Help帮助模块 -->
<view class="headLine">Help</view>
<tn-list-view :card="cardMode" class="settingList">
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">FAQ</view>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Feedback</view>
<view class="list-left-text-two">Report bugs and tell us what to improve</view>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Provacy policy</view>
</view>
</view>
</view>
</tn-list-cell>
</tn-list-view>
<view>
<view class="headLine">Help</view>
<tn-list-view :card="cardMode" class="settingList">
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-help tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">FAQ</view>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-edit-form tn-color-gray"></view>
<view class="list-left-feedback-text">
<view class="list-left-feedback-text-one">Feedback</view>
<view class="list-left-feedback-text-two">Report bugs and tell us what to improve.</view>
</view>
</view>
</view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text">
<!-- 左边图标文本显示部分 -->
<view class="list-left">
<view class="list-left-icon tn-icon-safe-fill tn-color-gray"></view>
<view class="list-left-text">
<view class="list-left-text-one">Provacy policy</view>
</view>
</view>
</view>
</tn-list-cell>
</tn-list-view>
</view>
</view>
</template>
@ -145,7 +154,60 @@
DarkModeChecked: true,
unlined: false,
inactiveColor: 'grey',
activeColor: 'darkblue'
activeColor: 'royalblue',
webEngine: false, //
searchEngineFlag: true, //
webEngineLabel: 'Google', //
webEngineValue: 0, //
placeholderText: 'search which you like', //
confirmText: 'Confirm', //
cancelText: 'Cancel', //
language: false, //
languageLabel: 'English', //
languageValue: 0, //
searchLanguageFlag: true, //
webEngineList:[
{
"value": 0,
"label": "Google"
},
{
"value": 1,
"label": "Yahoo"
},
{
"value": 2,
"label": "Bing"
}
],
languageList:[
{
"value": 0,
"label": "English"
},
{
"value": 1,
"label": "Deutsch"
},
{
"value": 2,
"label": "A"
},
{
"value": 3,
"label": "B"
},
{
"value": 4,
"label": "C"
},
{
"value": 5,
"label": "D"
},
]
}
},
onLoad() {
@ -153,6 +215,29 @@
},
methods: {
//
selectWebEngine(e){
console.log('选择了浏览器',e[0].label);
this.webEngineLabel = e[0].label;
this.webEngineValue = e[0].value;
},
//
openWebSelectView(){
this.webEngine = true;
},
//
openLanguageSelectView(){
this.language = true;
},
//
selectLanauage(e){
console.log('选择了语言',e[0].label);
this.languageLabel = e[0].label;
this.languageValue = e[0].value;
}
}
}
</script>
@ -171,7 +256,10 @@
.headLine{
color: royalblue;
font-size: 18px;
padding-top:30px;
//padding-top:30px;
//margin-right:200px;
margin-top:30px;
//border: 2px solid purple;
}
.settingList{
@ -179,7 +267,7 @@
width: 330px;
//height:300px;
height: auto;
margin-top: 50px;
//margin-top: 10px;
//background-color: #141b29;
.listItem{
@ -216,6 +304,20 @@
}
}
.list-left-feedback-text{
width: 240px;
.list-left-feedback-text-one{
font-size: 15px;
//border: 2px solid blue;
}
.list-left-feedback-text-two{
color: grey;
font-size:13px;
//border: 2px solid lightsalmon;
}
}
.list-left-icon{
//border: 2px solid blueviolet;
@ -223,42 +325,34 @@
font-size: 25px;
}
.list-left-select-text{
width: 160px;
.list-left-select-text-one{
font-size: 15px;
//border: 2px solid blue;
}
}
}
.list-right{
//border: 2px solid pink;
}
color: royalblue;
font-size: 20px;
// .list {
// &__left {
// display: flex;
// align-items: center;
// justify-content: flex-start;
// &__icon, &__image {
// margin-right: 18rpx;
// font-size: 25px;
// }
// }
// &__right {
// display: flex;
// align-items: center;
// justify-content: flex-end;
// }
// }
}
.list-right-icon{
//border: 2px solid gainsboro;
font-size: 25px;
margin-left: 15px;
}
.list-right-text{
//border: 2px solid green;
//margin-right: 30px;
//padding-right: 30px;
}
}
}
}
// .icon{
// color: dimgrey;
// font-size: 25px;
// display: flex;
// }
}
}

Loading…
Cancel
Save