uniapp如何優(yōu)雅的使用權(quán)限認(rèn)證并對(duì)本地文件上下起手

這里給大家分享我在網(wǎng)上總結(jié)出來(lái)的一些知識(shí),希望對(duì)大家有所幫助

1.起因

最近有一個(gè)需求,需要使用自定義插件,來(lái)對(duì)接硬件功能,需要配合對(duì)手機(jī)的權(quán)限進(jìn)行判斷和提示,并在對(duì)接后對(duì)本地文件進(jìn)行操作,這里給大家分享下我的碰到的問(wèn)題,廢話不多說(shuō),開(kāi)搞

2.對(duì)接自定義插件,制作自定義基座

manifest.json:本地插件;云端插件

本地插件:

將插件放到nativeplugins目錄中

?云端插件:?

const TestModule = uni.requireNativePlugin("TestModule")//本地插件
const callTrans = uni.requireNativePlugin('ljc-CallTransfer');//云端插件,試用

使用原生插件,需打包自定義基座

若使用試用版插件,則使用公共測(cè)試證書(shū),傳統(tǒng)打包

打開(kāi)項(xiàng)目vue 文件 —— 點(diǎn)擊運(yùn)行 —— 選擇運(yùn)行手機(jī)或模擬器 —— 選擇運(yùn)行基座選擇 —— 選擇自定義基座調(diào)試

點(diǎn)擊運(yùn)行 —— 選擇運(yùn)行手機(jī)或模擬器 —— 選擇制作自定義調(diào)式基座 —— 如圖 選擇 進(jìn)行打包 —— 打包成功以后將包發(fā)送到手機(jī)上完成安裝

點(diǎn)擊運(yùn)行 —— 選擇運(yùn)行手機(jī)或模擬器 —— 運(yùn)行到Android App基座—— 如果沒(méi)有連接手機(jī)需要連接手機(jī)(打開(kāi)usb調(diào)式 以及 開(kāi)發(fā)者工具)選擇對(duì)應(yīng)要調(diào)試的手機(jī)編號(hào) —— 即可進(jìn)行自定義基座調(diào)試。愛(ài)掏網(wǎng) - it200.com

?3.權(quán)限全判斷,調(diào)起解決方案

這里給大家推薦一個(gè)插件,自己照著寫(xiě)或者直接引入都行

?地址:https://ext.dcloud.net.cn/plugin?id=594#detail

核心方法展示:

方法一

// 檢查系統(tǒng)的設(shè)備服務(wù)是否開(kāi)啟
// var checkSystemEnableLocation = async function () {
function checkSystemEnableLocation() {
	if (isIos) {
		var result = false;
		var cllocatiOnManger= plus.ios.import("CLLocationManager");
		var result = cllocationManger.locationServicesEnabled();
		console.log("系統(tǒng)定位開(kāi)啟:" + result);
		plus.ios.deleteObject(cllocationManger);
		return result;
	} else {
		var cOntext= plus.android.importClass("android.content.Context");
		var locatiOnManager= plus.android.importClass("android.location.LocationManager");
		var main = plus.android.runtimeMainActivity();
		var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
		var result = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER);
		console.log("系統(tǒng)定位開(kāi)啟:" + result);
		return result
	}
}

方法二

// vue的method里編寫(xiě)如下代碼
async requestAndroidPermission(permisionID) {
    var result = await permision.requestAndroidPermission(permisionID)
    var strStatus
    if (result == 1) {
        strStatus = "已獲得授權(quán)"
    } else if (result == 0) {
        strStatus = "未獲得授權(quán)"
    } else {
        strStatus = "被永久拒絕權(quán)限"
    }
    uni.showModal({
        content: permisionID + strStatus,
        showCancel: false
    });
},

4.對(duì)本地文件上下起手

這里是最有意思的部分,也是我在網(wǎng)上找資料找得最多的一個(gè)難點(diǎn)

這里給大家分享我寫(xiě)好的兩個(gè)類型之中的方法,查找和刪除,希望對(duì)大家有所幫助

獲取指定目錄里的文件方法一

			getDirList(url) {
				uni.showLoading({
					title: '獲取中'
				});
				plus.io.resolveLocalFileSystemURL(url, (entry) => {
					const directoryReader = entry.createReader();
					directoryReader.readEntries((files) => {
						const len = files.length;
						uni.hideLoading();
						// for (var i = 0; i 

獲取指定目錄里的文件方法二

			getDirList(url) {
				uni.showLoading({
					title: '獲取中'
				});
				const envirOnment= plus.android.importClass("android.os.Environment")
				const File = plus.android.importClass("java.io.File"); 
				const sdRoot = environment.getExternalStorageDirectory()
				const files = plus.android.invoke(new File(url), "listFiles")
				uni.hideLoading();
				var len = files.length;
				for (var i = 0; i 

刪除指定路徑里的文件方法

			deleteDirFun(url) {
				uni.showLoading({
					title: '刪除中'
				});
				plus.io.resolveLocalFileSystemURL(url, (
					entry) => {
					entry.remove()
					uni.hideLoading();
					//讀取這個(gè)目錄對(duì)象    
					// const directoryReader = entry.createReader();
					// directoryReader.readEntries((entries)=>{
					// 	console.log(entries.length)
					// })
				})
			}

到這里,有關(guān)的所有東西分享完畢,如果對(duì)您有所幫助,歡迎您點(diǎn)個(gè)關(guān)注,我會(huì)定時(shí)更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進(jìn)步。愛(ài)掏網(wǎng) - it200.com

?


聲明:所有內(nèi)容來(lái)自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評(píng)論
更多 網(wǎng)友評(píng)論0 條評(píng)論)
暫無(wú)評(píng)論

返回頂部

主站蜘蛛池模板: 中文字幕在线观看亚洲| 日本年轻的妈妈| 日本人与黑人xxxx| 国模极品一区二区三区| 国产91最新在线| 亚洲一级毛片中文字幕| www.精品在线| 色综合久久综合网观看| 欧美高清在线精品一区| 成人免费毛片观看| 国产在线色视频| 亚洲人成在线观看| A∨变态另类天堂无码专区| 用我的手指来扰乱吧全集在线翻译 | 特级毛片www| 性欧美16sex性高清播放| 国产伦精品一区二区三区| 亚洲av本道一区二区三区四区| 91理论片午午伦夜理片久久| 精品乱码一区内射人妻无码| 无限资源视频手机在线观看| 国产成人AAAAA级毛片| 亚洲人成电影青青在线播放| 黄色免费短视频| 欧美军同性videosbest| 在线看片中文字幕| 免费女人18毛片a级毛片视频| 中文字幕亚洲专区| 荡乱妇3p疯狂伦交下载阅读| 我和小雪在ktv被一群男生小说| 国产一级理论免费版| 久久国产精品无码一区二区三区 | 国产成人精品无码一区二区 | 88国产精品欧美一区二区三区 | 同桌好舒服好粗好硬| 中文字幕精品一区二区2021年 | 国产极品视觉盛宴| 亚洲av永久综合在线观看尤物| 黄网站免费在线| 日韩剧情片电影网址| 国产片免费福利片永久|