{"_id":"@bob8168907/js-bridge","_rev":"1-38e18af30bf773863a04dd9e7ed00543","name":"@bob8168907/js-bridge","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bob8168907/js-bridge","version":"1.0.0","author":"","license":"ISC","_id":"@bob8168907/js-bridge@1.0.0","maintainers":[{"name":"bob8168907","email":"393841724@qq.com"}],"dist":{"shasum":"e8dcbaf01bf52df5e61ef72f5b846574f3199fe2","tarball":"https://registry.npmjs.org/@bob8168907/js-bridge/-/js-bridge-1.0.0.tgz","fileCount":3,"integrity":"sha512-V1jbYlty9RufOdOGD7E5ECenssoKA/lYdwDZ1Sggb64AJB+USm0qXPLnwyXdwVZLNsEejs219kVlq0EJo5Iv5A==","signatures":[{"sig":"MEYCIQD8rMeQo6zTSzkpQVh2G7JF0e3X6mvofAZAqyBA2R5T7wIhAOkn7N01FX91CRMYNhkHre8aF83O8bQ+HCHxzzCusgW+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9763},"type":"module","module":"dist/index.js","scripts":{"push":"npm run build && node ./cmd/publish","test":"echo \"Error: no test specified\" && exit 1","build":"rollup --config"},"_npmUser":{"name":"bob8168907","email":"393841724@qq.com"},"_npmVersion":"8.19.4","description":"鲨鱼皮混合开发原生h5交互js-bridge库","directories":{},"_nodeVersion":"16.20.2","dependencies":{"rollup":"^3.19.1","typescript":"^5.1.6","rollup-plugin-uglify":"^6.0.4","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.34.1","rollup-plugin-node-resolve":"^5.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/js-bridge_1.0.0_1724399727659_0.22634586255651756","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-08-23T07:55:27.557Z","modified":"2024-09-02T03:55:04.256Z","1.0.0":"2024-08-23T07:55:27.833Z"},"license":"ISC","description":"鲨鱼皮混合开发原生h5交互js-bridge库","maintainers":[{"email":"393841724@qq.com","name":"shayupi-0901"}],"readme":"# @syp-npm/js-bridge\r\n\r\n## 鲨鱼皮混合开发原生 h5 交互 js-bridge 库\r\n\r\nuse\r\n\r\n```sh\r\nnpm install @syp-npm/js-bridge\r\n```\r\n\r\n在 vue 项目中 main.js 文件中直接引入 window 下注入 SypJsBridge 方法\r\n\r\n```js\r\nimport '@syp-npm/js-bridge';\r\n```\r\n\r\n用法\r\n\r\n方法名就是 src 文件夹下 callHandler 里的方法\r\n\r\ntestEvent 方法名\r\nwindow.SypJsBridge.callHandler(方法名,参数,回调函数接收结果,是否需要进度回溯)\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler(\r\n  'testEvent',\r\n  {\r\n    message: '这是js调用testEvent方法传递的参数',\r\n    params: {\r\n      id: 1,\r\n    },\r\n  },\r\n  res => {\r\n    console.log('这是testEvent方法的回调', res);\r\n  },\r\n  true\r\n);\r\n```\r\n\r\n如果不需要支持进度回溯，方法已转换成 promise 可通过 promise 方式调用\r\nwindow.SypJsBridge.callHandler(方法名,参数)\r\n\r\n```js\r\nconst getAppInfo = async () => {\r\n  const result = await window.SypJsBridge.callHandler('getAppInfo');\r\n};\r\n```\r\n\r\n返回结果\r\n\r\n```js\r\n{\r\n  code: 0|1, // 0调用成功 1调用中\r\n  data: '返回数据',\r\n  msg: 'msg信息'\r\n}\r\n```\r\n\r\n## 详细使用方式\r\n\r\n### get-app-info 方法\r\n\r\n获取 app 设备信息以及 token 等\r\n\r\n用法\r\n\r\n```js\r\nconst getAppInfo = async () => {\r\n  const result = await window.SypJsBridge.callHandler('getAppInfo');\r\n};\r\n```\r\n\r\n返回结果\r\n\r\n### get-app-status-height 方法\r\n\r\n获取 app 通知栏高度\r\n\r\n用法\r\n\r\n```js\r\nconst getAppStatusHeight = async () => {\r\n  const result = await window.SypJsBridge.callHandler('getAppStatusHeight');\r\n};\r\n```\r\n\r\n返回结果\r\n\r\n```js\r\n{\r\n  code: 0，\r\n  data: 40, // 高度值\r\n  msg: ''\r\n}\r\n```\r\n\r\n### go-router 方法\r\n\r\nh5 跳转原生页面 调用立即生效\r\n\r\n用法\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler('goRouter', params);\r\n```\r\n\r\n传参\r\n\r\n```ts\r\ninterface params {\r\n  router: string; // 跳转路径\r\n  params?: {[key: string]: any}; // 传参\r\n}\r\n```\r\n\r\n### close-webview 方法\r\n\r\nh5 关闭当前 webview\r\n\r\n用法\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler('closeWebview');\r\n```\r\n\r\n### download-file 方法\r\n\r\n下载文件到本地\r\n\r\n用法\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler(\r\n  'downloadFile',\r\n  params,\r\n  res => {\r\n    console.log('这是downloadFile方法的回调', res);\r\n  },\r\n  true\r\n);\r\n```\r\n\r\n传参\r\n\r\n```ts\r\ninterface params {\r\n  url: string; // 需要保存文件路径\r\n  filesType: 'img' | 'pdf'; // 文件类型  图片文件、pdf文件\r\n}\r\n```\r\n\r\n返回结果\r\n\r\n```js\r\n{\r\n  code: 1，// 0调用完成 1调用中 3调用失败\r\n  data: {\r\n    progress: 10, // 下载进度0-100\r\n    status: 0|1|3 // 0 下载完成 1 下载中 3 下载失败 失败可在msg返回失败提示原因\r\n  },\r\n  msg: ''\r\n}\r\n```\r\n\r\n### upload 方法\r\n\r\n上传文件\r\n\r\n用法 upload 方法限制文件大小范围 image 类型 2.5M 以内 application/pdf 10M 以内\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler(\r\n  'upload',\r\n  params,\r\n  res => {\r\n    console.log('这是upload方法的回调', res);\r\n  },\r\n  true\r\n);\r\n```\r\n\r\n传参\r\n\r\n```ts\r\ninterface params {\r\n  type: 0|1|2|3  // 0 直接拍照 1 弹窗 (拍照 相册 文件上传) 2 弹窗 (拍照 相册) 3 直接文件上传\r\n  privatization: boolean // 是否是私有化上传\r\n  filesNumber: number // 文件个数\r\n  MIMETypes?: Array<'image/jpeg'|'image/png'|'application/pdf'> // 文件MIME类型 数组 可以多种类型 ['image/jpeg','image/png','application/pdf'] 传空代表不限制文件MIME类型\r\n}\r\n```\r\n\r\n返回结果\r\n\r\n```js\r\n{\r\n  code: 1，// 0调用完成 1调用中 3调用失败\r\n  data: {\r\n    progress: 10, // 上传进度0-100\r\n    url: [], // 上传文件完成的网络链接\r\n    status: 0|1|2|3 // 0 上传完成 1 上传中 2 取消上传 3 上传失败 失败可在msg返回失败提示原因\r\n  },\r\n  msg: ''\r\n}\r\n```\r\n\r\n### pay方法\r\n=======\r\n```\r\n\r\n微信/支付宝支付\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler('pay', params, (res) => {\r\n  console.log('这是pay方法的回调', res)\r\n}, true)\r\n```\r\n传参\r\n```ts\r\ninterface params {\r\n  payMethod: \"ALIPAY\" | \"WECHAT\"; // ALIPAY 支付宝支付 WECHAT 微信支付\r\n  transactionNo: string; // 订单编号\r\n}\r\n```\r\n返回结果\r\n```js\r\n{\r\n  code: 1，// 0支付失败 1支付成功\r\n  msg: ''\r\n}\r\n```\r\n\r\n### open-modal 方法\r\n\r\nh5 页面掉原生弹框 调用立即生效\r\n\r\n用法\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler('openModal', params);\r\n```\r\n\r\n传参\r\n\r\n```ts\r\ninterface params {\r\n  modalName: string; // 弹框类型\r\n  type?: string; // 可选动态传参\r\n}\r\n```\r\n\r\n### 联系客服 方法\r\n用法\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler('jumpToCustomer', params);\r\n```\r\n\r\n传参\r\n\r\n```ts\r\ninterface params {\r\n  type: string; // 客服类型\r\n}\r\n```\r\n\r\n### 安卓前往应用市场下载app 方法\r\n用法\r\n\r\n```js\r\nwindow.SypJsBridge.callHandler('downloadApp', params);\r\n```\r\n\r\n传参\r\n\r\n```ts\r\ninterface params {\r\n  id: string; // app应用对应包名\r\n}\r\n```\r\n","readmeFilename":"README.md"}