一.uniapp开发的app打开第三方应用
uniapp开发的app打开第三方应用,如淘宝,京东,QQ或本地安装好的apk等,并传递相关参数。可以参考此篇,下面这个是我通过uniapp打开本地安装apk,打开前提是必须知道包名。
注意,此处的plus是5+Runtime的内部对象,所以普通浏览器是没有plus运行环境,普通浏览器运行plus api会输出plus is not defined错误,只能通过HBuilder真机运行,打包后或流应用环境下才能运行plus的api。
// 打开第三方的app
openApp() {
if (plus.os.name == 'Android') {
// #ifdef APP-PLUS
var appid = plus.runtime.appid;
console.log('应用的 appid 为:' + appid);
// #endif
if (plus.runtime.isApplicationExist({
pname: 'com.wetao.sign'
})) {
plus.runtime.launchApplication({
pname: 'com.wetao.sign',
extra: {
imgurl: 'storage/emulated/0/DCIM/sign/a.png' //传递参数,extra必须是json格式
}
},
function(e) {
console.log('Open system default browser failed: ' + e.message);
uni.showToast({
title: "打开失败了",
icon: none
})
});
} else {
uni.showToast({
title: "apk未安装",
icon: "none"
})
}
}
},
参考文档:
https://www.jianshu.com/p/57f79fc83233
http://www.manongjc.com/article/113392.html
https://ext.dcloud.net.cn/plugin?id=2448
https://blog.csdn.net/qq285679784/article/details/107838560
https://blog.csdn.net/M_Eve/article/details/106623838
https://www.cnblogs.com/huzhuhua/p/13712415.html
http://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.openURL
二.plus调用android原生页面
参考:http://www.bubuko.com/infodetail-3753674.html
//打开第三方应用平台,plus调用Android原生页面
openSign() {
if (plus.os.name == 'Android') {
if (plus.runtime.isApplicationExist({
pname: 'com.wetao.sign'
})) {
/**
* 用setClassName()或者setComponent()来打开外部程序
* intent.setClassName(包名, 包名+activity名);
*/
//获取当前的activity
var main = plus.android.runtimeMainActivity();
//获取java辅助类
var Intent = plus.android.importClass('android.content.Intent');
let ComponentName = plus.android.importClass('android.content.ComponentName');
let intent = new Intent();
intent.setComponent(new ComponentName('com.wetao.sign', "com.wetao.sign.core.MainActivity"))
this.currentImg = new Date().getTime();
//传递第三方平台参数
intent.putExtra("imgurl", `/mnt/sdcard/sign/qianming/${
this.currentImg}.png`);
main.startActivityForResult(intent, 0);
} else {
uni.showToast({
title: '本机未检测到未安装手写板'
})
}
} else {
uni.showToast({
title: "只支持安卓系统",
icon: none
})
}
},
三.uniapp读取本地本地文件内容
IO模块管理本地文件系统,用于对文件系统的目录浏览、文件的读取、文件的写入等操作。通过plus.io可获取文件系统管理对象.参考:http://www.html5plus.org/doc/zh_cn/io.html
plus.io.resolveLocalFileSystemURL通过URL参数获取目录对象或文件对象,读取设备本地图片文件路径。
onShow() {
//图片文件名
this.currentImg = new Date().getTime();
plus.io.resolveLocalFileSystemURL(`/mnt/sdcard/sign/qianming/${
this.currentImg}.png`, (entry) => {
//entry.toLocalURL获取文件路径转为本地路径
let localImg = entry.toLocalURL();
entry.file((file) => {
var fileReader = new plus.io.FileReader();
console.log("getFile:" + JSON.stringify(file));
fileReader.readAsText(file, 'utf-8');
fileReader.onloadend = function(evt) {
console.log("11" + JSON.stringify(evt));
// console.log("evt.target" + JSON.stringify(evt.target));
// console.log(JSON.stringify(evt.target.result));
}
})
}, (e) => {
console.log("Resolve file URL failed: " + e.message);
})
},
四、uni-app清空指定路径下文件夹及内容
//清空图片的缓存
clearPicture() {
console.log('清空缓存')
var self = this
plus.io.resolveLocalFileSystemURL('/mnt/sdcard/sign/qianming/', function(entry) {
entry.removeRecursively(function(entry) {
//递归删除其下的所有文件及子目录
console.log("缓存清理完成");
}, function(e) {
console.log(e.message);
});
self.showCache();
}, function(e) {
console.log('文件路径读取失败-可能没文件', e);
});
},
showCache() {
plus.io.resolveLocalFileSystemURL('/mnt/sdcard/sign/qianming/', function(entry) {
//通过URL参数获取目录对象或文件对象
var fileSize = 0;
var directoryReader = entry.createReader();
directoryReader.readEntries(function(entries) {
//获取当前目录中的所有文件和子目录
for (var i = 0; i < entries.length; i++) {
if (entries[i].isFile) {
entries[i].file(function(file) {
fileSize += (file.size * 0.0009766);
}, function(e) {
console.log(e.message);
});
} else {
entries[i].getMetadata(function(metadata) {
fileSize += (metadata.size * 0.0009766); //1字节=0.0009766kb
}, function() {
console.log(e.message);
});
}
}
}, function(e) {
console.log('文件读取失败');
});
retrun `${
Math.ceil(fileSize)}kb`
}, function(e) {
console.log('文件路径读取失败');
});
},
今天的文章uniapp调用第三方sdk_uniapp开发的app有哪些分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/86472.html