1.0.0 • Published 1 year ago

@daskking/jsbridge v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

JSBridge

安装

npm install @cpsdk/jsbridge --save

使用

.npmrc

在项目目录中新建一个 .npmrc 文件, 写入 @cpsdk:registry=https://npmjs-inner.cpgroupcloud.com/

@cpsdk:registry=https://npmjs-inner.cpgroupcloud.com/

nativebar

标题

import JSBridge from '@cpsdk/jsbridge';

// 设置 NativeBar

JSBridge.ready(() => {
	JSBridge.app.setNativeBar({
		menuTitle: '签收列表',
	});
});

右按钮

// 设置 NativeBar 右边按钮功能

const rightCallback = () => {
	console.log('click right button');
}
const callbackName = 'rightCallback';
JSBridge.ready(() => {
	// 注册点击 native 右按钮需要调用的函数 rightCallback
	JSBridge.registerHandler(callbackName, rightCallback);
	JSBridge.app.setNativeBar({
		rightAction: {
			// 右按钮文案
			text: '列表',
			// 点击有按钮要调用注册的函数的名称
			callbackName,
		}
	});
});

// 组件销毁的时候要取消注册的函数(重要)

// vue2
export default {
	beforeDestroy() {
		JSBridge.unRegisterHandler('rightCallback');
	}
}

// vue3
import { defineComponent,  onBeforeUnmount } from 'vue';

export default defineComponent({
	setup() {
		onBeforeUnmount(() => {
			JSBridge.unRegisterHandler('rightCallback');
		});
	}
});

downloadPDF

下载 pdf 文件

// 入参
export interface DownloadPDFParams {
	/**
	 * 下载地址
	 */
	url: string,
	/**
	 * 下载接口的入参
	 */
	data : {
		[key: string]: any,
	}
}

// 返回值
interface DownloadPDFResponse {
	/**
	 * 请求类型
	 */
	type: string,
	data: {
		/**
		 * 成功 true, 失败 false
		 */
		status: boolean
		/**
		 * 文件信息
		 */
		fileInfo: {
			/**
			 * 文件名
			 */
			name: '',
			/**
			 * 文件路径
			 */
			path: '',
		}
	}
}

 JSBridge.app.downloadPDF(params: DownloadPDFParams).then((res: DownloadPDFResponse) => {

		console.log('downloadPDF: ', res.data.fileInfo);
	})
	.catch((error) => {
		console.log(error);
	});
};

openQR

打开扫码功能

// 返回值
interface OpenQRResponse {
	type: string,
	data: {
		/**
		 * 二维码字符串
		 */
		message: string,
	}
}

JSBridge.app.openQR().then((res: OpenQRResponse) => {
	console.log(res.data.message);
});