unia-app第三方app调用
一.uniapp开发的app打开第三方应用
uniapp开发的app打开第三方应用,如淘宝,京东,QQ或本地安装好的apk等,并传递相关参数。可以参考此篇,下面这个是我通过uniapp打开本地安装apk,打开前提是必须知道包名。
注意,此处的plus是5+Runtime的内部对象,所以普通浏览器是没有plus运行环境,普通浏览器运行plus api会输出plus is not defined错误,只能通过HBuilder真机运行,打包后或流应用环境下才能运行plus的api。
// 打开第三方的appopenApp() {if (plus.os.name == 'Android') {// #ifdef APP-PLUSvar appid = plus.runtime.appid;console.log('应用的 appid 为:' + appid);// #endifif (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名);*///获取当前的activityvar 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 = thisplus.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('文件路径读取失败');});},
unia-app第三方app调用相关推荐
- html5 plus 支付,h5+ app 第三方支付调用步骤
1 在页面onload中获取支付通道,支付的时候再获取支付通道会浪费用户等待时间: // 获取支付通道 (微信&支付宝) var wxChannel,aliChannel; plus.paym ...
- Android 调用第三方 APP
本文导读 如果想要在 App 1 中调用 App 2 的 Activity1,则操作流程如下: 1)首先被调用的 App 2 中要声明 Activity1 是可以被启动的 或者 Activity 是对 ...
- Android调用第三方App Activity
在App A中调用App B的Activity1.需要做两方面的配置. (1)App B要表明,Activity1是对外可见的,或是可以被启动的Activity. 可在AndroidManifest. ...
- uni-app 唤醒调用第三方app并传参(一 显示调用)
1.离线打包设置 包名: com.xxx.xxxAPP(其实只需要包名就行) 执行activity:io.dcloud.PandoraEntry 2.调用方代码 //判断app是否存在 if(plu ...
- cordova打开文件_Cordova开发App入门(四)打开及下载第三方App
前言 在开发app时经常会碰到这种需求:我要在A应用中打开B应用,那么用Cordova如何实现呢? 欲知后事如何,且听下回分解...... ... 大大大大佬,别,别打我,我继续写还不行了吗. 本文涉 ...
- android 安装第三方app,Android识别预装的第三方App方法实例
前言 新买一台手机,里面会有很多App,有的属于系统App,不可卸载,有的属于第三方App,厂商会预装一些常用的或者给了他们广告费的App,这些是可以卸载的. 如果要详细划分,系统App还可根据其路径 ...
- ionic4 ios打开appstore 跳转第三方app
ionic4 打开appstore 跳转第三方app 1. 需要用到的插件 (1)检测 APP 是否安装的插件 ionic cordova plugin add cordova-plugin-appa ...
- 【WP8】Uri关联启动第三方App
在WP8中支持启动第三方应用程序,比如在App1中可以打开App2,你可以在你的应用程序中直接打开QQ,也可以让其他开发者调用你的APP,例如:软件盒子 下面演示被调用方和调用方的使用方法,新建两个项 ...
- web app 第三方登录-微博登录(一)
在最近参与的一个android项目中,使用的是web app 的形式,就是android提供容器,但是里面的内容都由H5实现.由于不是原生的app,给集成第三方登录带来一些困难.下面把集成的过程分享下 ...
- WebView打开第三方APP
最近做项目遇到一个需求,用应用内WebView打开淘宝和支付宝来进行授权,之前没做过,写下来记录一下 1.首先webview要实现setWebViewClient, shouldOverrideUrl ...
最新文章
- C语言函数集(十三)
- 面试 | 蚂蚁金服面试经历
- vue 附件上传获取附近内容_vue实现文件上传功能
- 虚拟化运行[OpenStack] VMWare产品介绍
- 新年立个小目标!代码写得更规范!
- android 定义固定数组,Android 图片数组定义和读取
- Android Q 不叫 Q,正式命名为 Android 10
- 写markdown用vscode的插件Markdown Preview Enhanced
- 你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
- 小项目--猜年龄游戏
- LQR控制算法及matlab/simulink仿真
- 【Matlab】建立最优控制LQR控制器模型
- OS | 【四 文件管理】强化阶段大题解构 —— FAT文件系统、UFS文件系统访问文件过程
- win10开启无线网卡服务器,Win10笔记本电脑无线网卡 教你如何开启Win10笔记本内置无线网卡...
- (转帖)Spring循环依赖的解决办法
- win7正在配置请勿关闭计算机,win7系统开机屏幕显示“正在配置Windows Update,请勿关机”的解决方法...
- CSDN使用Markdown编辑器
- android 自动锁屏设置,如何才能使安卓手机不自动锁屏?改成自动黑屏,谢谢
- 使用C语言链表实现商品管理系统
- oracle9i升级oracle10g