uniapp调用第三方sdk_uniapp开发的app有哪些

uniapp调用第三方sdk_uniapp开发的app有哪些一.uniapp开发的app打开第三方应用uniapp开发的app打开第三方应用,如淘宝,京东,QQ或本地安装好的apk等,并传递相关参数

uniapp调用第三方sdk_uniapp开发的app有哪些"

一.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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注