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. 7
      pages/scan/Book.vue
  5. 69
      pages/scan/Scan.nvue
  6. 400
      pages/setting/Setting.vue

6
App.vue

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

63
manifest.json

@ -3,7 +3,7 @@
"appid" : "__UNI__44D25EC", "appid" : "__UNI__44D25EC",
"description" : "", "description" : "",
"versionName" : "1.0.0", "versionName" : "1.0.0",
"versionCode" : "100", "versionCode" : 101,
"transformPx" : false, "transformPx" : false,
/* 5+App */ /* 5+App */
"app-plus" : { "app-plus" : {
@ -38,12 +38,67 @@
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>", "<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
] ],
"minSdkVersion" : 21,
"targetSdkVersion" : 28
}, },
/* ios */ /* ios */
"ios" : {}, "ios" : {
"dSYMs" : false
},
/* SDK */ /* 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.

7
pages/scan/Book.vue

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

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

@ -1,13 +1,9 @@
<template> <template>
<view class="content"> <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" 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/Book')">跳转Book页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Calendar')">跳转Calendar页面</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/Email')">跳转Email页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Location')">跳转Location页面</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> <tn-button shape="round" @click="jumpToPage('/pages/scan/Paypal')">跳转Paypal页面</tn-button>
@ -17,8 +13,11 @@
<tn-button shape="round" @click="jumpToPage('/pages/scan/Text')">跳转Text页面</tn-button> <tn-button shape="round" @click="jumpToPage('/pages/scan/Text')">跳转Text页面</tn-button>
<tn-button shape="round" @click="jumpToPage('/pages/scan/Url')">跳转Url页面</tn-button> <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 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> </view>
</template> </template>
@ -29,10 +28,23 @@
title: 'Scan' title: 'Scan'
} }
}, },
onLoad() { created() {
// this.scanCode();
}, },
methods: { methods: {
testAdd(){
const testModule = uni.requireNativePlugin('scanCode');
testModule.add({
a:1,
b:2
},res => {
uni.showToast({
title: '提示',
content: JSON.stringify(res)
})
})
},
//根据扫码返回结果判断跳转到哪个指定页面 //根据扫码返回结果判断跳转到哪个指定页面
jumpToPage(url){ jumpToPage(url){
uni.navigateTo({ uni.navigateTo({
@ -41,20 +53,41 @@
}, },
//扫码 //扫码
scanCode(){ // scanCode(){
// 允许从相机和相册扫码 // // 允许从相机和相册扫码
uni.scanCode({ // uni.scanCode({
success: function (res) { // success: function (res) {
console.log('条码类型:' + res.scanType); // console.log(JSON.stringify(res))
console.log('条码内容:' + res.result); // 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> </script>
<style> <style lang="scss">
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

400
pages/setting/Setting.vue

@ -2,136 +2,145 @@
<view class="content"> <view class="content">
<!-- 顶部通用设置模块 --> <!-- 顶部通用设置模块 -->
<view class="headLine">General Settings</view> <view>
<tn-list-view :card="cardMode" class="settingList" unlined="all"> <view class="headLine">General Settings</view>
<tn-list-cell class="listItem"> <tn-list-view :card="cardMode" class="settingList" unlined="all">
<view class="list-icon-text"> <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">
<view class="list-left-text"> <view class="list-left-icon tn-icon-circle-fill tn-color-gray"></view>
<view class="list-left-text-one">Beep</view> <view class="list-left-text">
<view class="list-left-text-two">Beep when the scan is successfull.</view> <view class="list-left-text-one">Beep</view>
</view> <view class="list-left-text-two">Beep when the scan is successfull.</view>
</view> </view>
<!-- 右边操作按钮部分 --> </view>
<view class="list-right"> <!-- 右边操作按钮部分 -->
<tn-switch v-model="beepChecked" :inactiveValue="0" :activeValue="1" <view class="list-right">
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch> <tn-switch v-model="beepChecked" :inactiveValue="0" :activeValue="1"
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
</view>
</view> </view>
</view> </tn-list-cell>
</tn-list-cell>
<tn-list-cell class="listItem">
<tn-list-cell class="listItem"> <view class="list-icon-text">
<view class="list-icon-text"> <!-- 左边图标文本显示部分 -->
<!-- 左边图标文本显示部分 --> <view class="list-left">
<view class="list-left"> <view class="list-left-icon tn-icon-discover tn-color-gray"></view>
<view class="list-left-icon tn-icon-discover tn-color-gray"></view> <view class="list-left-text">
<view class="list-left-text"> <view class="list-left-text-one">Auto-copied to clipboard</view>
<view class="list-left-text-one">Auto-copied to clipboard</view> </view>
</view> </view>
</view> <!-- 右边操作按钮部分 -->
<!-- 右边操作按钮部分 --> <view class="list-right">
<view class="list-right"> <tn-switch v-model="ClipboardCheked" :inactiveValue="0" :activeValue="1"
<tn-switch v-model="ClipboardCheked" :inactiveValue="0" :activeValue="1" :inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch> </view>
</view> </view>
</view> </tn-list-cell>
</tn-list-cell>
<tn-list-cell class="listItem">
<tn-list-cell class="listItem"> <view class="list-icon-text">
<view class="list-icon-text"> <!-- 左边图标文本显示部分 -->
<!-- 左边图标文本显示部分 --> <view class="list-left">
<view class="list-left"> <view class="list-left-icon tn-icon-search tn-color-gray"></view>
<view class="list-left-icon tn-icon-discover tn-color-gray"></view> <view class="list-left-select-text">
<view class="list-left-text"> <view class="list-left-select-text-one">Search Engine</view>
<view class="list-left-text-one">Search Engine</view> </view>
</view> </view>
</view> <!-- 右边操作按钮部分 -->
<!-- 右边操作按钮部分 --> <view class="list-right">
<view class="list-right"> <text class="list-right-text">{{ webEngineLabel }}</text><text class="tn-icon-down-triangle list-right-icon" @click="openWebSelectView"></text>
<!-- <tn-switch v-model="checked" :inactiveValue="0" :activeValue="1"></tn-switch> --> <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>
</view> </tn-list-cell>
</tn-list-cell>
<tn-list-cell class="listItem">
<tn-list-cell class="listItem"> <view class="list-icon-text">
<view class="list-icon-text"> <!-- 左边图标文本显示部分 -->
<!-- 左边图标文本显示部分 --> <view class="list-left">
<view class="list-left"> <view class="list-left-icon tn-icon-moon-fill tn-color-gray"></view>
<view class="list-left-icon tn-icon-discover tn-color-gray"></view> <view class="list-left-text">
<view class="list-left-text"> <view class="list-left-text-one">Dark Mode</view>
<view class="list-left-text-one">Dark Mode</view> </view>
</view> </view>
</view> <!-- 右边操作按钮部分 -->
<!-- 右边操作按钮部分 --> <view class="list-right">
<view class="list-right"> <tn-switch v-model="DarkModeChecked" :inactiveValue="0" :activeValue="1"
<tn-switch v-model="DarkModeChecked" :inactiveValue="0" :activeValue="1" :inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch>
:inactiveColor="inactiveColor" :activeColor="activeColor"></tn-switch> </view>
</view> </view>
</view> </tn-list-cell>
</tn-list-cell>
<tn-list-cell class="listItem">
<tn-list-cell class="listItem"> <view class="list-icon-text">
<view class="list-icon-text"> <!-- 左边图标文本显示部分 -->
<!-- 左边图标文本显示部分 --> <view class="list-left">
<view class="list-left"> <view class="list-left-icon tn-icon-english tn-color-gray"></view>
<view class="list-left-icon tn-icon-discover tn-color-gray"></view> <view class="list-left-select-text">
<view class="list-left-text"> <view class="list-left-select-text-one">Language options</view>
<view class="list-left-text-one">Language options</view> </view>
</view> </view>
</view> <!-- 右边操作按钮部分 -->
<!-- 右边操作按钮部分 --> <view class="list-right">
<view class="list-right"> <text class="list-right-text">{{ languageLabel }}</text><text class="tn-icon-down-triangle list-right-icon" @click="openLanguageSelectView"></text>
<!-- <tn-switch v-model="checked" :inactiveValue="0" :activeValue="1"></tn-switch> --> <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>
</view> </tn-list-cell>
</tn-list-cell> </tn-list-view>
</tn-list-view> </view>
<!-- 底部Help帮助模块 --> <!-- 底部Help帮助模块 -->
<view class="headLine">Help</view> <view>
<tn-list-view :card="cardMode" class="settingList"> <view class="headLine">Help</view>
<tn-list-cell class="listItem"> <tn-list-view :card="cardMode" class="settingList">
<view class="list-icon-text"> <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">
<view class="list-left-text"> <view class="list-left-icon tn-icon-help tn-color-gray"></view>
<view class="list-left-text-one">FAQ</view> <view class="list-left-text">
</view> <view class="list-left-text-one">FAQ</view>
</view> </view>
</view> </view>
</tn-list-cell> </view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text"> <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">
<view class="list-left-text"> <view class="list-left-icon tn-icon-edit-form tn-color-gray"></view>
<view class="list-left-text-one">Feedback</view> <view class="list-left-feedback-text">
<view class="list-left-text-two">Report bugs and tell us what to improve</view> <view class="list-left-feedback-text-one">Feedback</view>
</view> <view class="list-left-feedback-text-two">Report bugs and tell us what to improve.</view>
</view> </view>
</view> </view>
</tn-list-cell> </view>
</tn-list-cell>
<tn-list-cell class="listItem">
<view class="list-icon-text"> <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">
<view class="list-left-text"> <view class="list-left-icon tn-icon-safe-fill tn-color-gray"></view>
<view class="list-left-text-one">Provacy policy</view> <view class="list-left-text">
</view> <view class="list-left-text-one">Provacy policy</view>
</view> </view>
</view> </view>
</tn-list-cell> </view>
</tn-list-view> </tn-list-cell>
</tn-list-view>
</view>
</view> </view>
</template> </template>
@ -145,14 +154,90 @@
DarkModeChecked: true, DarkModeChecked: true,
unlined: false, unlined: false,
inactiveColor: 'grey', 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() { onLoad() {
}, },
methods: { 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> </script>
@ -171,7 +256,10 @@
.headLine{ .headLine{
color: royalblue; color: royalblue;
font-size: 18px; font-size: 18px;
padding-top:30px; //padding-top:30px;
//margin-right:200px;
margin-top:30px;
//border: 2px solid purple;
} }
.settingList{ .settingList{
@ -179,7 +267,7 @@
width: 330px; width: 330px;
//height:300px; //height:300px;
height: auto; height: auto;
margin-top: 50px; //margin-top: 10px;
//background-color: #141b29; //background-color: #141b29;
.listItem{ .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{ .list-left-icon{
//border: 2px solid blueviolet; //border: 2px solid blueviolet;
@ -223,42 +325,34 @@
font-size: 25px; font-size: 25px;
} }
.list-left-select-text{
width: 160px;
.list-left-select-text-one{
font-size: 15px;
//border: 2px solid blue;
}
}
} }
.list-right{ .list-right{
//border: 2px solid pink; //border: 2px solid pink;
color: royalblue;
font-size: 20px;
.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;
}
} }
// .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;
// }
// }
} }
} }
// .icon{
// color: dimgrey;
// font-size: 25px;
// display: flex;
// }
} }
} }

Loading…
Cancel
Save