|
- // apicloud 控制台需要添加webBrowser模块,重新编译loader
- var jsfunc = "";//注入脚本代码
- var webUrl = "https://www**.**/";//网站地址
- apiready = function () {
-
- getReloadData();
-
- }
- function getReloadData(){
-
- api.addEventListener({
- name: 'commonEventListener'
- }, function(ret, err) {
- var result = ret.value;
- if(result.eventType == "downloadImage"){
- //获取图片信息
- var imageUrl = result.imageUrl;
- downloadImage(imageUrl);
- }
- });
- //webBrowser 打开链接地址
- openPageView();
- }
- function openPageView(){
- var webBrowser = api.require('webBrowser');
- //打开网站地址
- webBrowser.openView({
- url: webUrl,
- rect: {
- x: 0,
- y: api.safeArea.top,
- w: 'auto',
- h: 'auto'
- }
- }, function(ret, err) {
-
- switch (ret.state) {
- case 0:
- break;
- case 1:
- //页面加载完成
- if(ret.progress == 100 ){
- //1.判断网站地址是否需要js注入 ret.url
-
- //2.js 注入
- webBrowser.loadScript({
- script: jsfunc
- });
- }
- break;
- case 2:
-
- break;
- case 3:
- break;
- case 4:
- break;
- default:
- break;
- }
- });
-
- }
- //图片缓存到本地
- function cacheImage(imagepath,filepath,filename,callback,isShowLoading){
- if(!arguments[0]) return;
- if(!arguments[1]) filepath = "cacheImage";
- if(!arguments[2]) filename = new Date().getTime();
- if(!arguments[4]) isShowLoading = false;
- var savePath = 'fs://'+filepath+'/original/'+filename+'.jpeg';
- if(isShowLoading){
- api.showProgress();
- }
- api.download({
- url: imagepath,
- savePath: savePath,
- report: true,
- cache: true,
- allowResume: true
- }, function (ret, err) {
- if(ret.state === 1){
- if(isShowLoading){
- api.hideProgress();
- }
-
- var data = {
- state:1,
- savePath:savePath,
- };
- callback(data);
- }else if(ret.state === 2){
- if(isShowLoading){
- api.hideProgress();
- }
- }
- });
- }
- //图片保存到系统本地相册
- function downloadImage(imagepath,filepath,filename){
- if(!arguments[0]) return;
- if(!arguments[1]) filepath = "cacheImage";
- if(!arguments[2]) filename = new Date().getTime();
- cacheImage(imagepath,filepath,filename,function (ret,err) {
- if(ret.state === 1){
- requestPermission(['camera'],function(ret,err){
- if(ret){
- api.saveMediaToAlbum({
- path: ret.savePath,
- groupName:api.appName
- }, function (ret, err) {
- if(ret.status){
- showMessage("图片已保存至本地相册");
- }else{
- showMessage("图片保存失败");
- }
- });
- }
- });
- }
- });
- }
- function requestPermission(vList,callback){
- if(!arguments[0]) vList = [];
- if(vList.length <= 0){
- callback(true);
- return;
- }
- var resultList = api.hasPermission({
- list : vList
- });
- var reqPermissionList = [];
- var reqPermissionListCName = [];
- for (var i = 0; i < resultList.length; i++) {
- if(resultList[i].granted == false){
- var permissionName = resultList[i].name;
- reqPermissionList.push(permissionName);
- if(permissionName.indexOf('notification') > -1 ){
- //判断是否为通知权限
- reqPermissionListCName.push("【通知】");
- }else if(permissionName.indexOf('location') > -1){
- //判断是否为定位权限
- reqPermissionListCName.push("【定位】");
- }
- }
- }
- if(reqPermissionList.length > 0){
- if(reqPermissionListCName.length > 0){
- api.confirm({
- title: api.appName,
- msg: '便于更好的体验《'+api.appName+'》,允许请求手机'+reqPermissionListCName.join("/")+'权限?',
- buttons: ['确定', '取消']
- }, function(ret, err) {
- var index = ret.buttonIndex;
- if(index != 1){
- callback(false);
- }else{
- requestPermissionResult(reqPermissionList,callback);
- }
- });
- }else{
- requestPermissionResult(reqPermissionList,callback);
- }
- }else{
- callback(true);
- }
- }
- function requestPermissionResult(reqPermissionList,callback){
- var iscallback = true;
- api.requestPermission({
- list:reqPermissionList,
- code:10001
- }, function(ret, err){
- console.log(JSON.stringify(ret));
- if(ret){
- var callList = ret.list;
- for (var i = 0; i < callList.length; i++) {
- if(!callList[i].granted){
- iscallback = false;
- continue;
- }
- }
- callback(iscallback);
- }else{
- callback(false);
- }
- });
- }
复制代码
jsfunc :根据自己的需求整理下面的代码
- // 例如:点击事件
- // 选择器
- var cimageBtn = document.getElementById("cimage-btn");
- cimageBtn.addEventListener("click", function (){
-
- //要保存到相册的图片(自行获取)
- var imageUrl = document.getElementById("cimage").src;
- // var imageUrl = 'https://b**.**/searchbox/image/cmsuploader/20220520/1653038842439141.png';
- api.sendEvent({
- name: 'commonEventListener',
- extra: {
- eventType: 'downloadImage',
- imageUrl: imageUrl//远程图片地址
- }
- });
- });
复制代码
将整理好的代码 压缩一行,放在jsfunc 里面即可(无用注释可去掉)
|
|