syttunnel 0.1.8-1 → 0.1.8-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,47 @@
1
+ export interface BleManagerInitParams {
2
+ /** 业务场景 */
3
+ businessScene: string;
4
+ /** 打印指令接口参数 */
5
+ printCommandOptions: IPrintOptions;
6
+ /** 业务参数 */
7
+ businessParams: {
8
+ /** 订单号 */
9
+ appointmentNo: string;
10
+ };
11
+ }
12
+ export interface IPrintOptions {
13
+ /** 模板编码 */
14
+ templateCode?: string;
15
+ /** 传固定值:2.0 */
16
+ version?: string;
17
+ /** 模板业务字段 */
18
+ documents?: Array<IDocument>;
19
+ /** 模板扩展字段 */
20
+ extJson?: IExtJson;
21
+ }
22
+ export interface IDocument {
23
+ /** 主运单号 */
24
+ masterWaybillNo?: string;
25
+ /** 自定义区域备注 */
26
+ remark?: string;
27
+ /** 1:收方电话后6位 2:寄方电话后6位 */
28
+ waybillNoCheckType?: string;
29
+ /** 运单号合法校验具体值 比如:“123456”,与 waybillNoCheckType 参数对应 */
30
+ waybillNoCheckValue?: string;
31
+ }
32
+ export interface IExtJson {
33
+ /** 订单所属渠道。传固定值:cx */
34
+ channel?: string;
35
+ /** 自定义脱敏标识。传固定值:111100(即脱敏收寄件人姓名、地址) */
36
+ encryptFlag?: string;
37
+ /** 指令集类型,cpcl(便携打印机)或者zpl,默认cpcl。传固定值:cpcl */
38
+ commandType?: string;
39
+ /** 图片转换文本。传固定值:true */
40
+ imageConvertText?: boolean;
41
+ }
42
+ export declare class SFAppBle {
43
+ /**
44
+ * 进行蓝牙打印运单
45
+ */
46
+ blePrint(params: BleManagerInitParams): Promise<void>;
47
+ }
@@ -3,7 +3,7 @@ import { CommonEvents } from "../basic/eventsName";
3
3
  /**
4
4
  * 顺丰内部使用的事件
5
5
  */
6
- export declare type SFEvents = CommonEvents | "payBySVIP" | "payBySDK" | "wxAutoPaySignReq" | "payWaybillByPayId" | "digiCnyPayResult" | "startGetIMEICode" | "getReducerData" | "getDeviceId" | "getDuDeviceId" | "syncCookie" | "getPushAuthStatus" | "setStateToPush" | "setStateToPushNoTimeLimit" | "getLocalWebSource" | "navigate" | "setCanBack" | "payByWXMiniProgram" | "openWXMiniProgram" | "onAliIdVerify" | "openAliMiniProgram";
6
+ export declare type SFEvents = CommonEvents | "blePrint" | "payBySVIP" | "payBySDK" | "wxAutoPaySignReq" | "payWaybillByPayId" | "digiCnyPayResult" | "startGetIMEICode" | "getReducerData" | "getDeviceId" | "getDuDeviceId" | "syncCookie" | "getPushAuthStatus" | "setStateToPush" | "setStateToPushNoTimeLimit" | "getLocalWebSource" | "navigate" | "setCanBack" | "payByWXMiniProgram" | "openWXMiniProgram" | "onAliIdVerify" | "openAliMiniProgram";
7
7
  export interface IPostSFParams extends IPostParams {
8
8
  method: SFEvents;
9
9
  }
package/indexsf.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import appFetch from "./core/basic/appFetch";
2
+ import { SFAppBle } from "./core/extension/appBle";
2
3
  import { SFAppCommon } from "./core/extension/appCommon";
3
4
  import { SFAppNavigator } from "./core/extension/appNavigator";
4
5
  import { SFAppPay } from "./core/extension/appPay";
@@ -7,8 +8,10 @@ declare const appCommon: SFAppCommon;
7
8
  declare const appNavigator: SFAppNavigator;
8
9
  declare const appPay: SFAppPay;
9
10
  declare const appUser: SFAppUser;
11
+ declare const appBle: SFAppBle;
10
12
  export { appFetch };
11
13
  export { appUser };
12
14
  export { appPay };
13
15
  export { appCommon };
14
16
  export { appNavigator };
17
+ export { appBle };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syttunnel",
3
- "version": "0.1.8-1",
3
+ "version": "0.1.8-3",
4
4
  "description": "",
5
5
  "main": "syttunnel.js",
6
6
  "types": "indexsf.d.ts",
package/syttunnel.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.sytTunnel=t():e.sytTunnel=t()}("undefined"!=typeof self?self:this,(function(){return(()=>{"use strict";var e=[function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.appNavigator=t.appCommon=t.appPay=t.appUser=t.appFetch=void 0;var n=o(r(1));t.appFetch=n.default;var a=r(12),s=r(14),i=r(16),u=r(18),p=new a.SFAppCommon;t.appCommon=p;var c=new s.SFAppNavigator;t.appNavigator=c;var f=new i.SFAppPay;t.appPay=f;var d=new u.SFAppUser;t.appUser=d},function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var s=a(r(2));n(r(11),t),t.default=s.default},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppFetch=void 0;var n=o(r(3)),a=r(4),s=r(9),i=o(r(10)),u=function(){function e(e){this.defaults=e,this.interceptors={request:new n.default,response:new n.default}}return e.prototype.request=function(e,t){"string"==typeof e?(t||(t={}),t.url=e):t=e,t=s.mergeConfig(this.defaults,t);var r=[{resolved:a.dispatchRequest,rejected:void 0}];this.interceptors.request.forEach((function(e){r.unshift(e)})),this.interceptors.response.forEach((function(e){r.push(e)}));for(var o=Promise.resolve(t);r.length;){var n=r.shift(),i=n.resolved,u=n.rejected;o=o.then(i,u)}return o},e.prototype.get=function(e,t){return this._requestMethodWhithoutData("get",e,t)},e.prototype.delete=function(e,t){return this._requestMethodWhithoutData("delete",e,t)},e.prototype.head=function(e,t){return this._requestMethodWhithoutData("head",e,t)},e.prototype.options=function(e,t){return this._requestMethodWhithoutData("options",e,t)},e.prototype.post=function(e,t,r){return this._requestMethodWhithData("post",e,t,r)},e.prototype.put=function(e,t,r){return this._requestMethodWhithData("put",e,t,r)},e.prototype.patch=function(e,t,r){return this._requestMethodWhithData("patch",e,t,r)},e.prototype._requestMethodWhithoutData=function(e,t,r){return this.request(Object.assign(r||{},{method:e,url:t}))},e.prototype._requestMethodWhithData=function(e,t,r,o){return this.request(Object.assign(o||{},{method:e,url:t,data:r}))},e}();t.AppFetch=u;var p=function(e){var t=new u(e),r=u.prototype.request.bind(t);return s.extend(r,t),r},c=p(i.default);c.create=function(e){return p(s.mergeConfig(i.default,e))},c.AppFetch=u,t.default=c},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.interceptors=[]}return e.prototype.use=function(e,t){return this.interceptors.push({resolved:e,rejected:t}),this.interceptors.length-1},e.prototype.eject=function(e){this.interceptors[e]&&(this.interceptors[e]=null)},e.prototype.forEach=function(e){this.interceptors.forEach((function(t){null!==t&&e(t)}))},e}();t.default=r},(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deepMerge=t.isURLSearchParams=t.isPlainObject=t.isObject=t.isDate=t.buildURL=t.combineURL=t.isAbsoluteURL=t.transformURL=t.dispatchRequest=void 0;var o=r(5),n=r(8);t.dispatchRequest=function(e){var t=a(e);return o.sytFetch(t)};var a=function(e){return e.url=t.transformURL(e),e.data=n.transform(e.data,e.headers),e};t.transformURL=function(e){var r=e.params,o=e.baseURL,n=e.url;return o&&!t.isAbsoluteURL(n)&&(n=t.combineURL(o,n)),t.buildURL(n,r)},t.isAbsoluteURL=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)},t.combineURL=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e},t.buildURL=function(e,r,o){if(!r)return e;var n;if(o)n=o(r);else if(t.isURLSearchParams(r))n=r.toString();else{var a=[];Object.keys(r).forEach((function(e){var o=r[e];if(null!=o){var n=[];Array.isArray(o)?(n=o,e+="[]"):n=[o],n.forEach((function(r){t.isDate(r)?r=r.toISOString():t.isPlainObject(r)&&(r=JSON.stringify(r)),a.push(s(e)+"="+s(r))}))}})),n=a.join("&")}if(n){var i=e.indexOf("#");-1!==i&&(e=e.slice(0,i)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e};var s=function(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")};t.isDate=function(e){return"[object Date]"===Object.prototype.toString.call(e)},t.isObject=function(e){return null!==e&&"object"==typeof e},t.isPlainObject=function(e){return"[object Object]"===toString.call(e)},t.isURLSearchParams=function(e){return void 0!==typeof e&&e instanceof URLSearchParams},t.deepMerge=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var o=Object.create(null);return e.forEach((function(e){e&&Object.keys(e).forEach((function(r){var n=e[r];t.isPlainObject(n)?t.isPlainObject(o[r])?o[r]=t.deepMerge(o[r],n):o[r]=t.deepMerge(n):o[r]=n}))})),o}},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.sytFetch=void 0;var n=o(r(6));t.sytFetch=function(e){var t=e.data,r=void 0===t?null:t,o=e.url,a=e.method,s={method:"sytFetch",params:{url:o,method:void 0===a?"get":a,body:r,headers:e.headers,timeout:e.timeout,withCredentials:e.withCredentials}};return new Promise((function(t,r){n.default.postMessage(s).then((function(o){var n=o.data;if(n){var a=n.err;if(a){var s=a.name||"-1",i=a.message||"";r({errCode:s,errMessage:i})}else{var u=n.res,p=n.headers,c=n.status,f=n.statusText;t({status:c,statusText:f,data:u,config:e,headers:p})}}else r({errCode:"-1",errMessage:"没有返回data数据"})})).catch((function(e){r(e)}))}))}},function(e,t,r){var o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var n,a=r(7);!function(e){e.CALL="call",e.REGISTER="register",e.UNREGISTER="unregister",e.CALLBACK="callback"}(n||(n={}));var s=new function(){var e=this;this.onMessage=function(t){var r={};if(t.data&&"string"==typeof t.data&&t.data.length>0)try{r=JSON.parse(t.data)}catch(e){}else t.data&&(r=t.data);var o=r.method,a=r.value,s=r.uniqueId,i=r.errCode,u=r.errMessage,p=r.callbackId;if(o)if(s){var c=e.messageHandlers[s];c&&(null!=a&&null!=a?c(null,a):c({errCode:i,errMessage:u},null),delete e.messageHandlers[s])}else{if(!o)return;var f;p&&(f=function(t){e.dealPostMessage({responseId:p,method:o,params:{result:t},type:n.CALLBACK})});var d=e.subscribers[o];d&&d.length>0&&d.forEach((function(e){e(a,f)}))}},this.postMessage=function(t){return new Promise((function(r,a){e.dealPostMessage(o({type:n.CALL},t),(function(e,t){e?a(e):null!=t?r(t):a({errCode:"-1",errMessage:"返回的数据错误"})}))}))},this.dealPostMessage=function(t,r){if(window.ReactNativeWebView||window.parent.ReactNativeWebView){var o=t;if(r){var n="cb_"+(e.uniqueId++).toString()+Date.now().toString();e.messageHandlers[n]=r,o.uniqueId=n}window.ReactNativeWebView?window.ReactNativeWebView.postMessage(JSON.stringify(o)):window.parent.ReactNativeWebView&&window.parent.ReactNativeWebView.postMessage(JSON.stringify(o))}else r&&r({errCode:"-2",errMessage:"不存在APP事件调用通道"})},this.subscribeEvent=function(t,r){var o=e.subscribers[t]||[];o.push(r),e.subscribers[t]=o,o.length>0&&e.dealPostMessage({method:t,type:n.REGISTER})},this.unsubscribeEvent=function(t,r){var o=e.subscribers[t],a=o.indexOf(r);a>-1&&(o.splice(a,1),e.subscribers[t]=o),o.length<=0&&e.dealPostMessage({method:t,type:n.UNREGISTER})},a.isSfAppIOS()?window.addEventListener("message",this.onMessage):a.isSfAppAndroid()&&document.addEventListener("message",this.onMessage),this.messageHandlers={},this.subscribers={},this.uniqueId=0,this.curAppVersion=0};t.default=s},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isSfAppAndroid=t.isSfAppIOS=t.userAgent=void 0,t.userAgent=window.navigator.userAgent,t.isSfAppIOS=function(){return!!t.userAgent.includes("SFEXPRESSAPP-iOS-ML")},t.isSfAppAndroid=function(){return!!t.userAgent.includes("SFEXPRESSAPP-Android-ML")}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.transform=void 0,t.transform=function(e,t,r){return r?(Array.isArray(r)||(r=[r]),r.forEach((function(r){e=r(e,t)})),e):e}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.mergeConfig=t.extend=void 0,t.extend=function(e,t){for(var r in t)e[r]=t[r];return e};var r=Object.create(null);t.mergeConfig=function(e,t){t||(t={});var o=Object.create(null);function n(e,t){return void 0!==t?t:e}for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&s(a);for(var a in e)Object.prototype.hasOwnProperty.call(t,a)||s(a);function s(a){var s=r[a]||n;o[a]=s(e[a],t[a])}return o}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default={method:"get",timeout:0,headers:{common:{Accept:"application/json, text/plain, */*"}}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppCommon=void 0;var s=r(13),i=a(r(6)),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.getIMEICode=function(){return i.default.postMessage({method:"startGetIMEICode"})},t.prototype.getPushAuthStatus=function(){return i.default.postMessage({method:"getPushAuthStatus"})},t.prototype.setPushState=function(){return i.default.postMessage({method:"setStateToPush"})},t.prototype.setPushStateNoTimeLimit=function(){return i.default.postMessage({method:"setStateToPushNoTimeLimit"})},t.prototype.getLocalSource=function(e){var t={method:"getLocalWebSource",params:e};return i.default.postMessage(t)},t.prototype.getReducerData=function(e){var t={method:"getReducerData",params:e};return i.default.postMessage(t)},t.prototype.getDeviceId=function(){return i.default.postMessage({method:"getDeviceId"})},t.prototype.getDuDeviceId=function(){return window.curAppVersion<1095400?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.54或以上版本"}):i.default.postMessage({method:"getDuDeviceId"})},t.prototype.syncCookies=function(e){var t={method:"syncCookie",params:e};i.default.postMessage(t).then().catch()},t.prototype.openWXMiniProgram=function(e){if(window.curAppVersion<1094100)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.41或以上版本"});var t={method:"openWXMiniProgram",params:e};return i.default.postMessage(t)},t.prototype.onAliIdVerify=function(e){if(window.curAppVersion<1094200)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.42或以上版本"});var t={method:"onAliIdVerify",params:e};return i.default.postMessage(t)},t.prototype.openAliMiniProgram=function(e){if(window.curAppVersion<1097200)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.72或以上版本"});var t={method:"openAliMiniProgram",params:e};return i.default.postMessage(t)},t}(s.AppCommon);t.SFAppCommon=u},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppCommon=void 0;var n=o(r(6)),a=function(){function e(){this.getAppVersion().then((function(e){if(e&&e.clientVersionCode)try{window.curAppVersion=Number(e.clientVersionCode)}catch(e){}})).catch((function(e){}))}return e.prototype.openScan=function(e){var t={method:"startScanCode",params:e};return n.default.postMessage(t)},e.prototype.shareMsgToWXAPI=function(e){var t={method:"shareMessageToWXReq",params:e};return n.default.postMessage(t)},e.prototype.getLocation=function(e){var t={method:"currentLocation",params:e};return n.default.postMessage(t)},e.prototype.getAppVersion=function(){return n.default.postMessage({method:"appVersion"})},e.prototype.onSelectContacts=function(){return n.default.postMessage({method:"selectContacts"})},e.prototype.onSaveImageToLocal=function(e){var t={method:"saveImageToLocal",params:e};return n.default.postMessage(t)},e.prototype.getEnvironment=function(){return n.default.postMessage({method:"getEnvironment"})},e.prototype.getSFAddress=function(e){var t={method:"selectAddress",params:e};return n.default.postMessage(t)},e.prototype.pasteString=function(e){var t={method:"pasteString",params:e};return n.default.postMessage(t)},e.prototype.getDeviceModel=function(){return window.curAppVersion<1094200?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.42或以上版本"}):n.default.postMessage({method:"getDeviceModel"})},e.prototype.checkPermission=function(e){if(window.curAppVersion<1094200)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.42或以上版本"});var t={method:"checkPermission",params:e};return n.default.postMessage(t)},e.prototype.takePhoto=function(e){if(window.curAppVersion<1094800)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.48或以上版本"});var t={method:"takePhoto",params:e};return n.default.postMessage(t)},e.prototype.selectPhoto=function(e){if(window.curAppVersion<1094800)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.48或以上版本"});var t={method:"selectPhoto",params:e};return n.default.postMessage(t)},e.prototype.getAddedWidgets=function(){return window.curAppVersion<1094700?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.47或以上版本"}):n.default.postMessage({method:"getAddedWidgets"})},e.prototype.goToAppMarketEvaluation=function(){return window.curAppVersion<1095e3?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.50或以上版本"}):n.default.postMessage({method:"goToAppMarketEvaluation"})},e.prototype.openMapApps=function(e){if(window.curAppVersion<1096200){var t={errCode:"10",errMessage:"当前APP版本不支持,请使用9.62或以上版本"+window.curAppVersion};return Promise.reject(t)}var r={method:"openMapApps",params:e};return n.default.postMessage(r)},e.prototype.calendarEvent=function(e){var t={method:"calendarEvent",params:e};return n.default.postMessage(t)},e}();t.AppCommon=a},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppNavigator=void 0;var s=r(15),i=a(r(6)),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.setNavigatorCanBack=function(e){var t={method:"setCanBack",params:{canBack:e}};i.default.postMessage(t).then().catch()},t.prototype.navigate=function(e){var t={method:"navigate",params:e};i.default.postMessage(t).then().catch()},t}(s.AppNavigator);t.SFAppNavigator=u},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppNavigator=void 0;var n=o(r(6)),a=function(){function e(){}return e.prototype.closeH5App=function(e){var t={method:"backToBefore",params:e};n.default.postMessage(t).then().catch()},e.prototype.setNavigatorTitle=function(e){var t={method:"setTitle",params:e};n.default.postMessage(t).then().catch()},e.prototype.setNavigatorStyle=function(e){var t={method:"setStyle",params:e};n.default.postMessage(t).then().catch()},e.prototype.getNavigatorFrame=function(){return n.default.postMessage({method:"getNavigationFrame"})},e.prototype.loadUrl=function(e){var t={method:"loadUrl",params:e};n.default.postMessage(t).then().catch()},e.prototype.onGoBack=function(){n.default.postMessage({method:"goBack"}).then().catch()},e.prototype.onBackPressedListener=function(e){n.default.subscribeEvent("onBackPressed",(function(t,r){r(e(t))}))},e}();t.AppNavigator=a},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppPay=void 0;var s=r(17),i=a(r(6)),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.payBySVIP=function(e){var t={method:"payBySVIP",params:e};return i.default.postMessage(t)},t.prototype.payBySDK=function(e){var t={method:"payBySDK",params:e};return i.default.postMessage(t)},t.prototype.payBySf=function(e){var t={method:"payBySf",params:e};return i.default.postMessage(t)},t.prototype.wxAutoPaySignReq=function(e){var t={method:"wxAutoPaySignReq",params:e};return i.default.postMessage(t)},t.prototype.onDigiCnyPayResult=function(e){var t={method:"digiCnyPayResult",params:e};i.default.postMessage(t).then().catch()},t.prototype.payWaybillByPayId=function(e){var t={method:"payWaybillByPayId",params:e};i.default.postMessage(t).then().catch()},t.prototype.payByWXMiniProgram=function(e){var t={method:"payByWXMiniProgram",params:e};return i.default.postMessage(t)},t}(s.AppPay);t.SFAppPay=u},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppPay=void 0;var n=o(r(6)),a=function(){function e(){}return e.prototype.payByWeChat=function(e){var t={method:"payByWeChat",params:e};return n.default.postMessage(t)},e.prototype.payByAli=function(e){var t={method:"payByAli",params:e};return n.default.postMessage(t)},e}();t.AppPay=a},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppUser=void 0;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(r(19).AppUser);t.SFAppUser=a},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppUser=void 0;var n=o(r(6)),a=function(){function e(){}return e.prototype.authorize=function(e){var t={method:"authorize",params:e};return n.default.postMessage(t)},e.prototype.getUserInfo=function(e){var t={method:"getUserInfo",params:{needLogin:e.needLogin||!0,domain:e.domain}};return n.default.postMessage(t)},e.prototype.getUserBaseInfo=function(e){var t={method:"getUserBaseInfo",params:{needLogin:e.needLogin||!0}};return n.default.postMessage(t)},e.prototype.getUserAvatar=function(e){var t={method:"getUserAvatar",params:{needLogin:e.needLogin||!0}};return n.default.postMessage(t)},e}();t.AppUser=a}],t={};return function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}};return e[o].call(a.exports,a,a.exports,r),a.exports}(0)})()}));
2
- //# sourceMappingURL=main-c772c8.js.map
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.sytTunnel=t():e.sytTunnel=t()}("undefined"!=typeof self?self:this,(function(){return(()=>{"use strict";var e=[function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.appBle=t.appNavigator=t.appCommon=t.appPay=t.appUser=t.appFetch=void 0;var n=o(r(1));t.appFetch=n.default;var a=r(12),s=r(13),i=r(15),u=r(17),p=r(19),c=new s.SFAppCommon;t.appCommon=c;var f=new i.SFAppNavigator;t.appNavigator=f;var d=new u.SFAppPay;t.appPay=d;var l=new p.SFAppUser;t.appUser=l;var h=new a.SFAppBle;t.appBle=h},function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var s=a(r(2));n(r(11),t),t.default=s.default},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppFetch=void 0;var n=o(r(3)),a=r(4),s=r(9),i=o(r(10)),u=function(){function e(e){this.defaults=e,this.interceptors={request:new n.default,response:new n.default}}return e.prototype.request=function(e,t){"string"==typeof e?(t||(t={}),t.url=e):t=e,t=s.mergeConfig(this.defaults,t);var r=[{resolved:a.dispatchRequest,rejected:void 0}];this.interceptors.request.forEach((function(e){r.unshift(e)})),this.interceptors.response.forEach((function(e){r.push(e)}));for(var o=Promise.resolve(t);r.length;){var n=r.shift(),i=n.resolved,u=n.rejected;o=o.then(i,u)}return o},e.prototype.get=function(e,t){return this._requestMethodWhithoutData("get",e,t)},e.prototype.delete=function(e,t){return this._requestMethodWhithoutData("delete",e,t)},e.prototype.head=function(e,t){return this._requestMethodWhithoutData("head",e,t)},e.prototype.options=function(e,t){return this._requestMethodWhithoutData("options",e,t)},e.prototype.post=function(e,t,r){return this._requestMethodWhithData("post",e,t,r)},e.prototype.put=function(e,t,r){return this._requestMethodWhithData("put",e,t,r)},e.prototype.patch=function(e,t,r){return this._requestMethodWhithData("patch",e,t,r)},e.prototype._requestMethodWhithoutData=function(e,t,r){return this.request(Object.assign(r||{},{method:e,url:t}))},e.prototype._requestMethodWhithData=function(e,t,r,o){return this.request(Object.assign(o||{},{method:e,url:t,data:r}))},e}();t.AppFetch=u;var p=function(e){var t=new u(e),r=u.prototype.request.bind(t);return s.extend(r,t),r},c=p(i.default);c.create=function(e){return p(s.mergeConfig(i.default,e))},c.AppFetch=u,t.default=c},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.interceptors=[]}return e.prototype.use=function(e,t){return this.interceptors.push({resolved:e,rejected:t}),this.interceptors.length-1},e.prototype.eject=function(e){this.interceptors[e]&&(this.interceptors[e]=null)},e.prototype.forEach=function(e){this.interceptors.forEach((function(t){null!==t&&e(t)}))},e}();t.default=r},(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deepMerge=t.isURLSearchParams=t.isPlainObject=t.isObject=t.isDate=t.buildURL=t.combineURL=t.isAbsoluteURL=t.transformURL=t.dispatchRequest=void 0;var o=r(5),n=r(8);t.dispatchRequest=function(e){var t=a(e);return o.sytFetch(t)};var a=function(e){return e.url=t.transformURL(e),e.data=n.transform(e.data,e.headers),e};t.transformURL=function(e){var r=e.params,o=e.baseURL,n=e.url;return o&&!t.isAbsoluteURL(n)&&(n=t.combineURL(o,n)),t.buildURL(n,r)},t.isAbsoluteURL=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)},t.combineURL=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e},t.buildURL=function(e,r,o){if(!r)return e;var n;if(o)n=o(r);else if(t.isURLSearchParams(r))n=r.toString();else{var a=[];Object.keys(r).forEach((function(e){var o=r[e];if(null!=o){var n=[];Array.isArray(o)?(n=o,e+="[]"):n=[o],n.forEach((function(r){t.isDate(r)?r=r.toISOString():t.isPlainObject(r)&&(r=JSON.stringify(r)),a.push(s(e)+"="+s(r))}))}})),n=a.join("&")}if(n){var i=e.indexOf("#");-1!==i&&(e=e.slice(0,i)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e};var s=function(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")};t.isDate=function(e){return"[object Date]"===Object.prototype.toString.call(e)},t.isObject=function(e){return null!==e&&"object"==typeof e},t.isPlainObject=function(e){return"[object Object]"===toString.call(e)},t.isURLSearchParams=function(e){return void 0!==typeof e&&e instanceof URLSearchParams},t.deepMerge=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var o=Object.create(null);return e.forEach((function(e){e&&Object.keys(e).forEach((function(r){var n=e[r];t.isPlainObject(n)?t.isPlainObject(o[r])?o[r]=t.deepMerge(o[r],n):o[r]=t.deepMerge(n):o[r]=n}))})),o}},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.sytFetch=void 0;var n=o(r(6));t.sytFetch=function(e){var t=e.data,r=void 0===t?null:t,o=e.url,a=e.method,s={method:"sytFetch",params:{url:o,method:void 0===a?"get":a,body:r,headers:e.headers,timeout:e.timeout,withCredentials:e.withCredentials}};return new Promise((function(t,r){n.default.postMessage(s).then((function(o){var n=o.data;if(n){var a=n.err;if(a){var s=a.name||"-1",i=a.message||"";r({errCode:s,errMessage:i})}else{var u=n.res,p=n.headers,c=n.status,f=n.statusText;t({status:c,statusText:f,data:u,config:e,headers:p})}}else r({errCode:"-1",errMessage:"没有返回data数据"})})).catch((function(e){r(e)}))}))}},function(e,t,r){var o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var n,a=r(7);!function(e){e.CALL="call",e.REGISTER="register",e.UNREGISTER="unregister",e.CALLBACK="callback"}(n||(n={}));var s=new function(){var e=this;this.onMessage=function(t){var r={};if(t.data&&"string"==typeof t.data&&t.data.length>0)try{r=JSON.parse(t.data)}catch(e){}else t.data&&(r=t.data);var o=r.method,a=r.value,s=r.uniqueId,i=r.errCode,u=r.errMessage,p=r.callbackId;if(o)if(s){var c=e.messageHandlers[s];c&&(null!=a&&null!=a?c(null,a):c({errCode:i,errMessage:u},null),delete e.messageHandlers[s])}else{if(!o)return;var f;p&&(f=function(t){e.dealPostMessage({responseId:p,method:o,params:{result:t},type:n.CALLBACK})});var d=e.subscribers[o];d&&d.length>0&&d.forEach((function(e){e(a,f)}))}},this.postMessage=function(t){return new Promise((function(r,a){e.dealPostMessage(o({type:n.CALL},t),(function(e,t){e?a(e):null!=t?r(t):a({errCode:"-1",errMessage:"返回的数据错误"})}))}))},this.dealPostMessage=function(t,r){if(window.ReactNativeWebView||window.parent.ReactNativeWebView){var o=t;if(r){var n="cb_"+(e.uniqueId++).toString()+Date.now().toString();e.messageHandlers[n]=r,o.uniqueId=n}window.ReactNativeWebView?window.ReactNativeWebView.postMessage(JSON.stringify(o)):window.parent.ReactNativeWebView&&window.parent.ReactNativeWebView.postMessage(JSON.stringify(o))}else r&&r({errCode:"-2",errMessage:"不存在APP事件调用通道"})},this.subscribeEvent=function(t,r){var o=e.subscribers[t]||[];o.push(r),e.subscribers[t]=o,o.length>0&&e.dealPostMessage({method:t,type:n.REGISTER})},this.unsubscribeEvent=function(t,r){var o=e.subscribers[t],a=o.indexOf(r);a>-1&&(o.splice(a,1),e.subscribers[t]=o),o.length<=0&&e.dealPostMessage({method:t,type:n.UNREGISTER})},a.isSfAppIOS()?window.addEventListener("message",this.onMessage):a.isSfAppAndroid()&&document.addEventListener("message",this.onMessage),this.messageHandlers={},this.subscribers={},this.uniqueId=0,this.curAppVersion=0};t.default=s},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isSfAppAndroid=t.isSfAppIOS=t.userAgent=void 0,t.userAgent=window.navigator.userAgent,t.isSfAppIOS=function(){return!!t.userAgent.includes("SFEXPRESSAPP-iOS-ML")},t.isSfAppAndroid=function(){return!!t.userAgent.includes("SFEXPRESSAPP-Android-ML")}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.transform=void 0,t.transform=function(e,t,r){return r?(Array.isArray(r)||(r=[r]),r.forEach((function(r){e=r(e,t)})),e):e}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.mergeConfig=t.extend=void 0,t.extend=function(e,t){for(var r in t)e[r]=t[r];return e};var r=Object.create(null);t.mergeConfig=function(e,t){t||(t={});var o=Object.create(null);function n(e,t){return void 0!==t?t:e}for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&s(a);for(var a in e)Object.prototype.hasOwnProperty.call(t,a)||s(a);function s(a){var s=r[a]||n;o[a]=s(e[a],t[a])}return o}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default={method:"get",timeout:0,headers:{common:{Accept:"application/json, text/plain, */*"}}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppBle=void 0;var n=o(r(6)),a=function(){function e(){}return e.prototype.blePrint=function(e){var t={method:"blePrint",params:e};return n.default.postMessage(t)},e}();t.SFAppBle=a},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppCommon=void 0;var s=r(14),i=a(r(6)),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.getIMEICode=function(){return i.default.postMessage({method:"startGetIMEICode"})},t.prototype.getPushAuthStatus=function(){return i.default.postMessage({method:"getPushAuthStatus"})},t.prototype.setPushState=function(){return i.default.postMessage({method:"setStateToPush"})},t.prototype.setPushStateNoTimeLimit=function(){return i.default.postMessage({method:"setStateToPushNoTimeLimit"})},t.prototype.getLocalSource=function(e){var t={method:"getLocalWebSource",params:e};return i.default.postMessage(t)},t.prototype.getReducerData=function(e){var t={method:"getReducerData",params:e};return i.default.postMessage(t)},t.prototype.getDeviceId=function(){return i.default.postMessage({method:"getDeviceId"})},t.prototype.getDuDeviceId=function(){return window.curAppVersion<1095400?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.54或以上版本"}):i.default.postMessage({method:"getDuDeviceId"})},t.prototype.syncCookies=function(e){var t={method:"syncCookie",params:e};i.default.postMessage(t).then().catch()},t.prototype.openWXMiniProgram=function(e){if(window.curAppVersion<1094100)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.41或以上版本"});var t={method:"openWXMiniProgram",params:e};return i.default.postMessage(t)},t.prototype.onAliIdVerify=function(e){if(window.curAppVersion<1094200)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.42或以上版本"});var t={method:"onAliIdVerify",params:e};return i.default.postMessage(t)},t.prototype.openAliMiniProgram=function(e){if(window.curAppVersion<1097200)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.72或以上版本"});var t={method:"openAliMiniProgram",params:e};return i.default.postMessage(t)},t}(s.AppCommon);t.SFAppCommon=u},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppCommon=void 0;var n=o(r(6)),a=function(){function e(){this.getAppVersion().then((function(e){if(e&&e.clientVersionCode)try{window.curAppVersion=Number(e.clientVersionCode)}catch(e){}})).catch((function(e){}))}return e.prototype.openScan=function(e){var t={method:"startScanCode",params:e};return n.default.postMessage(t)},e.prototype.shareMsgToWXAPI=function(e){var t={method:"shareMessageToWXReq",params:e};return n.default.postMessage(t)},e.prototype.getLocation=function(e){var t={method:"currentLocation",params:e};return n.default.postMessage(t)},e.prototype.getAppVersion=function(){return n.default.postMessage({method:"appVersion"})},e.prototype.onSelectContacts=function(){return n.default.postMessage({method:"selectContacts"})},e.prototype.onSaveImageToLocal=function(e){var t={method:"saveImageToLocal",params:e};return n.default.postMessage(t)},e.prototype.getEnvironment=function(){return n.default.postMessage({method:"getEnvironment"})},e.prototype.getSFAddress=function(e){var t={method:"selectAddress",params:e};return n.default.postMessage(t)},e.prototype.pasteString=function(e){var t={method:"pasteString",params:e};return n.default.postMessage(t)},e.prototype.getDeviceModel=function(){return window.curAppVersion<1094200?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.42或以上版本"}):n.default.postMessage({method:"getDeviceModel"})},e.prototype.checkPermission=function(e){if(window.curAppVersion<1094200)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.42或以上版本"});var t={method:"checkPermission",params:e};return n.default.postMessage(t)},e.prototype.takePhoto=function(e){if(window.curAppVersion<1094800)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.48或以上版本"});var t={method:"takePhoto",params:e};return n.default.postMessage(t)},e.prototype.selectPhoto=function(e){if(window.curAppVersion<1094800)return Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.48或以上版本"});var t={method:"selectPhoto",params:e};return n.default.postMessage(t)},e.prototype.getAddedWidgets=function(){return window.curAppVersion<1094700?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.47或以上版本"}):n.default.postMessage({method:"getAddedWidgets"})},e.prototype.goToAppMarketEvaluation=function(){return window.curAppVersion<1095e3?Promise.reject({errCode:"10",errMessage:"当前APP版本不支持,请使用9.50或以上版本"}):n.default.postMessage({method:"goToAppMarketEvaluation"})},e.prototype.openMapApps=function(e){if(window.curAppVersion<1096200){var t={errCode:"10",errMessage:"当前APP版本不支持,请使用9.62或以上版本"+window.curAppVersion};return Promise.reject(t)}var r={method:"openMapApps",params:e};return n.default.postMessage(r)},e.prototype.calendarEvent=function(e){var t={method:"calendarEvent",params:e};return n.default.postMessage(t)},e}();t.AppCommon=a},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppNavigator=void 0;var s=r(16),i=a(r(6)),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.setNavigatorCanBack=function(e){var t={method:"setCanBack",params:{canBack:e}};i.default.postMessage(t).then().catch()},t.prototype.navigate=function(e){var t={method:"navigate",params:e};i.default.postMessage(t).then().catch()},t}(s.AppNavigator);t.SFAppNavigator=u},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppNavigator=void 0;var n=o(r(6)),a=function(){function e(){}return e.prototype.closeH5App=function(e){var t={method:"backToBefore",params:e};n.default.postMessage(t).then().catch()},e.prototype.setNavigatorTitle=function(e){var t={method:"setTitle",params:e};n.default.postMessage(t).then().catch()},e.prototype.setNavigatorStyle=function(e){var t={method:"setStyle",params:e};n.default.postMessage(t).then().catch()},e.prototype.getNavigatorFrame=function(){return n.default.postMessage({method:"getNavigationFrame"})},e.prototype.loadUrl=function(e){var t={method:"loadUrl",params:e};n.default.postMessage(t).then().catch()},e.prototype.onGoBack=function(){n.default.postMessage({method:"goBack"}).then().catch()},e.prototype.onBackPressedListener=function(e){n.default.subscribeEvent("onBackPressed",(function(t,r){r(e(t))}))},e}();t.AppNavigator=a},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppPay=void 0;var s=r(18),i=a(r(6)),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.payBySVIP=function(e){var t={method:"payBySVIP",params:e};return i.default.postMessage(t)},t.prototype.payBySDK=function(e){var t={method:"payBySDK",params:e};return i.default.postMessage(t)},t.prototype.payBySf=function(e){var t={method:"payBySf",params:e};return i.default.postMessage(t)},t.prototype.wxAutoPaySignReq=function(e){var t={method:"wxAutoPaySignReq",params:e};return i.default.postMessage(t)},t.prototype.onDigiCnyPayResult=function(e){var t={method:"digiCnyPayResult",params:e};i.default.postMessage(t).then().catch()},t.prototype.payWaybillByPayId=function(e){var t={method:"payWaybillByPayId",params:e};i.default.postMessage(t).then().catch()},t.prototype.payByWXMiniProgram=function(e){var t={method:"payByWXMiniProgram",params:e};return i.default.postMessage(t)},t}(s.AppPay);t.SFAppPay=u},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppPay=void 0;var n=o(r(6)),a=function(){function e(){}return e.prototype.payByWeChat=function(e){var t={method:"payByWeChat",params:e};return n.default.postMessage(t)},e.prototype.payByAli=function(e){var t={method:"payByAli",params:e};return n.default.postMessage(t)},e}();t.AppPay=a},function(e,t,r){var o,n=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.SFAppUser=void 0;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(r(20).AppUser);t.SFAppUser=a},function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AppUser=void 0;var n=o(r(6)),a=function(){function e(){}return e.prototype.authorize=function(e){var t={method:"authorize",params:e};return n.default.postMessage(t)},e.prototype.getUserInfo=function(e){var t={method:"getUserInfo",params:{needLogin:e.needLogin||!0,domain:e.domain}};return n.default.postMessage(t)},e.prototype.getUserBaseInfo=function(e){var t={method:"getUserBaseInfo",params:{needLogin:e.needLogin||!0}};return n.default.postMessage(t)},e.prototype.getUserAvatar=function(e){var t={method:"getUserAvatar",params:{needLogin:e.needLogin||!0}};return n.default.postMessage(t)},e}();t.AppUser=a}],t={};return function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}};return e[o].call(a.exports,a,a.exports,r),a.exports}(0)})()}));
2
+ //# sourceMappingURL=main-fcee55.js.map
package/syttunnel.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://sytTunnel/webpack/universalModuleDefinition","webpack://sytTunnel/./src/indexsf.ts","webpack://sytTunnel/./src/core/basic/appFetch/index.ts","webpack://sytTunnel/./src/core/basic/appFetch/appFetch.ts","webpack://sytTunnel/./src/core/basic/appFetch/InterceptorManager.ts","webpack://sytTunnel/./src/core/basic/appFetch/dispatchRequest.ts","webpack://sytTunnel/./src/core/basic/appFetch/sytFetch.ts","webpack://sytTunnel/./src/core/basic/bridge.ts","webpack://sytTunnel/./src/core/basic/tools.ts","webpack://sytTunnel/./src/core/basic/appFetch/transform.ts","webpack://sytTunnel/./src/core/basic/appFetch/utils.ts","webpack://sytTunnel/./src/core/basic/appFetch/defaults.ts","webpack://sytTunnel/./src/core/extension/appCommon.ts","webpack://sytTunnel/./src/core/basic/appCommon.ts","webpack://sytTunnel/./src/core/extension/appNavigator.ts","webpack://sytTunnel/./src/core/basic/appNavigator.ts","webpack://sytTunnel/./src/core/extension/appPay.ts","webpack://sytTunnel/./src/core/basic/appPay.ts","webpack://sytTunnel/./src/core/extension/appUser.ts","webpack://sytTunnel/./src/core/basic/appUser.ts","webpack://sytTunnel/webpack/bootstrap","webpack://sytTunnel/webpack/startup"],"names":["root","factory","exports","module","define","amd","self","this","appFetch","appCommon","SFAppCommon","appNavigator","SFAppNavigator","appPay","SFAppPay","appUser","SFAppUser","initConfig","defaults","interceptors","request","response","url","config","mergeConfig","chain","resolved","dispatchRequest","rejected","undefined","forEach","interceptor","unshift","push","promise","Promise","resolve","length","shift","then","get","_requestMethodWhithoutData","delete","head","options","post","data","_requestMethodWhithData","put","patch","method","Object","assign","AppFetch","createInstance","context","instance","prototype","bind","extend","default","create","use","eject","id","fn","newConfig","processConfig","sytFetch","transformURL","transform","headers","params","baseURL","isAbsoluteURL","combineURL","buildURL","test","relativeURL","replace","paramsSerializer","serializedParams","isURLSearchParams","toString","keys","key","val","values","Array","isArray","isDate","toISOString","isPlainObject","JSON","stringify","encode","join","markIndex","indexOf","slice","encodeURIComponent","call","isObject","URLSearchParams","deepMerge","result","objs","obj","appFunc","body","timeout","withCredentials","reject","postMessage","resData","err","errCode","name","errMessage","message","res","status","statusText","catch","EventType","bridge","onMessage","msg","parse","error","value","uniqueId","callbackId","messageHandlers","callback","dealPostMessage","responseId","type","CALLBACK","subscribers","handler","CALL","window","ReactNativeWebView","parent","postParams","Date","now","subscribeEvent","handlerName","REGISTER","unsubscribeEvent","index","splice","UNREGISTER","isSfAppIOS","addEventListener","isSfAppAndroid","document","curAppVersion","userAgent","navigator","includes","fns","to","from","strats","config1","config2","defaultStrat","val1","val2","hasOwnProperty","mergeField","strat","common","Accept","getIMEICode","getPushAuthStatus","setPushState","setPushStateNoTimeLimit","getLocalSource","getReducerData","getDeviceId","getDuDeviceId","syncCookies","openWXMiniProgram","onAliIdVerify","openAliMiniProgram","AppCommon","getAppVersion","clientVersionCode","Number","openScan","shareMsgToWXAPI","getLocation","onSelectContacts","onSaveImageToLocal","getEnvironment","getSFAddress","pasteString","getDeviceModel","checkPermission","takePhoto","selectPhoto","getAddedWidgets","goToAppMarketEvaluation","openMapApps","location","calendarEvent","setNavigatorCanBack","canBack","navigate","AppNavigator","closeH5App","setNavigatorTitle","setNavigatorStyle","getNavigatorFrame","loadUrl","onGoBack","onBackPressedListener","responseCallback","payBySVIP","payBySDK","payBySf","wxAutoPaySignReq","onDigiCnyPayResult","payWaybillByPayId","payByWXMiniProgram","AppPay","payByWeChat","payByAli","AppUser","authorize","getUserInfo","needLogin","domain","getUserBaseInfo","getUserAvatar","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"mappings":"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","file":"main-c772c8.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sytTunnel\"] = factory();\n\telse\n\t\troot[\"sytTunnel\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn ","import appFetch from \"./core/basic/appFetch\";\nimport { SFAppCommon } from \"./core/extension/appCommon\";\nimport { SFAppNavigator } from \"./core/extension/appNavigator\";\nimport { SFAppPay } from \"./core/extension/appPay\";\nimport { SFAppUser } from \"./core/extension/appUser\";\n\nconst appCommon = new SFAppCommon();\nconst appNavigator = new SFAppNavigator();\nconst appPay = new SFAppPay();\nconst appUser = new SFAppUser();\n\nexport { appFetch };\nexport { appUser };\nexport { appPay };\nexport { appCommon };\nexport { appNavigator };\n","import appFetch from \"./appFetch\";\nexport * from \"./types\";\n\nexport default appFetch;\n","import InterceptorManager from \"./InterceptorManager\";\nimport {\n AppFetchStatic,\n FetchPromise,\n Method,\n RejectedFn,\n RequestConfig,\n ResolveFn,\n Response,\n} from \"./types\";\nimport { dispatchRequest } from \"./dispatchRequest\";\nimport { extend, mergeConfig } from \"./utils\";\nimport defaults from \"./defaults\";\n\ninterface Interceptors {\n request: InterceptorManager<RequestConfig>;\n response: InterceptorManager<Response>;\n}\n\ninterface PromiseChain<T> {\n resolved: ResolveFn<T> | ((config: RequestConfig) => FetchPromise);\n rejected?: RejectedFn;\n}\n\nexport class AppFetch {\n defaults: RequestConfig;\n interceptors: Interceptors;\n constructor(initConfig: RequestConfig) {\n this.defaults = initConfig;\n this.interceptors = {\n request: new InterceptorManager<RequestConfig>(),\n response: new InterceptorManager<Response>(),\n };\n }\n\n request<T = any>(url: string | RequestConfig, config?: any): FetchPromise<T> {\n if (typeof url === \"string\") {\n if (!config) {\n config = {};\n }\n config.url = url;\n } else {\n config = url;\n }\n\n config = mergeConfig(this.defaults, config);\n\n const chain: PromiseChain<any>[] = [\n { resolved: dispatchRequest, rejected: undefined },\n ];\n\n this.interceptors.request.forEach((interceptor) => {\n chain.unshift(interceptor);\n });\n\n this.interceptors.response.forEach((interceptor) => {\n chain.push(interceptor);\n });\n\n let promise = Promise.resolve(config);\n\n while (chain.length) {\n const { resolved, rejected } = chain.shift()!;\n promise = promise.then(resolved, rejected);\n }\n\n return promise;\n }\n\n get(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"get\", url, config);\n }\n\n delete(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"delete\", url, config);\n }\n\n head(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"head\", url, config);\n }\n\n options(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"options\", url, config);\n }\n\n post(url: string, data?: any, config?: RequestConfig): FetchPromise {\n return this._requestMethodWhithData(\"post\", url, data, config);\n }\n\n put(url: string, data?: any, config?: RequestConfig): FetchPromise {\n return this._requestMethodWhithData(\"put\", url, data, config);\n }\n\n patch(url: string, data?: any, config?: RequestConfig): FetchPromise {\n return this._requestMethodWhithData(\"patch\", url, data, config);\n }\n\n _requestMethodWhithoutData(\n method: Method,\n url: string,\n config?: RequestConfig\n ) {\n return this.request(\n Object.assign(config || {}, {\n method,\n url,\n })\n );\n }\n\n _requestMethodWhithData(\n method: Method,\n url: string,\n data?: any,\n config?: RequestConfig\n ) {\n return this.request(\n Object.assign(config || {}, {\n method,\n url,\n data,\n })\n );\n }\n}\n\nconst createInstance = (config: RequestConfig): AppFetchStatic => {\n const context = new AppFetch(config);\n const instance = AppFetch.prototype.request.bind(context);\n extend(instance, context);\n return instance as AppFetchStatic;\n};\n\nconst appFetch = createInstance(defaults);\nappFetch.create = (config: RequestConfig) => {\n return createInstance(mergeConfig(defaults, config));\n};\nappFetch.AppFetch = AppFetch;\n\nexport default appFetch;\n","import * as utils from \"../utils\";\nimport { RejectedFn, RequestConfig, ResolveFn, Response } from \"./types\";\n\ninterface Interceptor<T> {\n resolved: ResolveFn<T>;\n rejected?: RejectedFn;\n}\n\nexport default class InterceptorManager<T> {\n private interceptors: (Interceptor<T> | null)[];\n\n constructor() {\n this.interceptors = [];\n }\n\n use(resolved: ResolveFn<T>, rejected?: RejectedFn): number {\n this.interceptors.push({\n resolved,\n rejected,\n });\n return this.interceptors.length - 1;\n }\n\n eject(id: number): void {\n if (this.interceptors[id]) {\n this.interceptors[id] = null;\n }\n }\n\n forEach(fn: (Interceptor: Interceptor<T>) => void): void {\n this.interceptors.forEach((interceptor) => {\n if (interceptor !== null) {\n fn(interceptor);\n }\n });\n }\n}\n","import { sytFetch } from \"./sytFetch\";\nimport { transform } from \"./transform\";\nimport { FetchPromise, RequestConfig } from \"./types\";\n\nexport const dispatchRequest = (config: RequestConfig): FetchPromise => {\n const newConfig = processConfig(config);\n return sytFetch(newConfig);\n};\n\nconst processConfig = (config: RequestConfig) => {\n config.url = transformURL(config);\n config.data = transform(config.data, config.headers);\n return config;\n};\n\nexport const transformURL = (config: RequestConfig): string => {\n const { params, baseURL } = config;\n let { url } = config;\n if (baseURL && !isAbsoluteURL(url!)) {\n url = combineURL(baseURL, url);\n }\n\n return buildURL(url!, params);\n};\n\nexport const isAbsoluteURL = (url: string): boolean => {\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\nexport const combineURL = (baseURL: string, relativeURL?: string): string => {\n return relativeURL\n ? baseURL.replace(/\\/+$/, \"\") + \"/\" + relativeURL.replace(/^\\/+/, \"\")\n : baseURL;\n};\n\nexport const buildURL = (\n url: string,\n params?: any,\n paramsSerializer?: (params: any) => string\n): string => {\n if (!params) {\n return url;\n }\n\n let serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n const parts: string[] = [];\n\n Object.keys(params).forEach((key) => {\n const val = params[key];\n if (val === null || typeof val === \"undefined\") {\n return;\n }\n let values = [];\n if (Array.isArray(val)) {\n values = val;\n key += \"[]\";\n } else {\n values = [val];\n }\n values.forEach((val) => {\n if (isDate(val)) {\n val = val.toISOString();\n } else if (isPlainObject(val)) {\n val = JSON.stringify(val);\n }\n parts.push(`${encode(key)}=${encode(val)}`);\n });\n });\n\n serializedParams = parts.join(\"&\");\n }\n\n if (serializedParams) {\n const markIndex = url.indexOf(\"#\");\n if (markIndex !== -1) {\n url = url.slice(0, markIndex);\n }\n url += (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + serializedParams;\n }\n\n return url;\n};\n\nconst encode = (val: string): string => {\n return encodeURIComponent(val)\n .replace(/%40/g, \"@\")\n .replace(/%3A/gi, \":\")\n .replace(/%24/g, \"$\")\n .replace(/%2C/gi, \",\")\n .replace(/%20/g, \"+\") // 约定将 空格 号转为 +\n .replace(/%5B/gi, \"[\")\n .replace(/%5D/gi, \"]\");\n};\n\nexport const isDate = (val: any): val is Date => {\n return Object.prototype.toString.call(val) === \"[object Date]\";\n};\n\nexport const isObject = (val: any): val is Object => {\n return val !== null && typeof val === \"object\";\n};\n\nexport const isPlainObject = (val: any): val is Object => {\n return toString.call(val) === \"[object Object]\";\n};\n\nexport const isURLSearchParams = (val: any): val is URLSearchParams => {\n return typeof val !== undefined && val instanceof URLSearchParams;\n};\n\nexport const deepMerge = (...objs: any[]): any => {\n const result = Object.create(null);\n\n objs.forEach((obj) => {\n if (obj) {\n Object.keys(obj).forEach((key) => {\n const val = obj[key];\n if (isPlainObject(val)) {\n if (isPlainObject(result[key])) {\n result[key] = deepMerge(result[key], val);\n } else {\n result[key] = deepMerge(val);\n }\n } else {\n result[key] = val;\n }\n });\n }\n });\n\n return result;\n};\n","import bridge, { IPostParams, IRequestCompletion } from \"../bridge\";\nimport { IPostBasicParams } from \"../eventsName\";\nimport { FetchPromise, RequestConfig, Response } from \"./types\";\n\nexport interface IRequestParams {\n url?: string;\n method?: string;\n body?: any;\n headers?: any;\n timeout?: number;\n withCredentials?: \"omit\" | \"same-origin\" | \"include\";\n}\n\nexport interface IAppFetchResponse {\n res: any;\n headers: any;\n status: number;\n statusText: string;\n}\n\nexport const sytFetch = (config: RequestConfig): FetchPromise => {\n const {\n data = null,\n url,\n method = \"get\",\n headers,\n timeout,\n withCredentials,\n } = config;\n\n const request: IRequestParams = {\n url,\n method,\n body: data,\n headers,\n timeout,\n withCredentials,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"sytFetch\",\n params: request,\n };\n\n return new Promise((resolve, reject) => {\n bridge\n .postMessage(appFunc)\n .then((result: any) => {\n const resData = result.data;\n\n if (!resData) {\n reject({\n errCode: \"-1\",\n errMessage: \"没有返回data数据\",\n });\n return;\n }\n\n const err = resData.err;\n if (err) {\n const errCode = err.name || \"-1\";\n const errMessage = err.message || \"\";\n reject({ errCode, errMessage });\n return;\n }\n\n const res = resData.res;\n const headers = resData.headers;\n const status = resData.status;\n const statusText = resData.statusText;\n\n const response: Response = {\n status: status,\n statusText: statusText,\n data: res,\n config,\n headers: headers,\n };\n resolve(response);\n })\n .catch((err) => {\n reject(err);\n });\n });\n};\n","import { isSfAppAndroid, isSfAppIOS } from \"./tools\";\n\nexport interface IPostParams {\n method: string;\n params?: any;\n}\n\nexport interface IError {\n errCode?: string;\n errMessage?: string;\n}\n\nenum EventType {\n CALL = \"call\",\n REGISTER = \"register\",\n UNREGISTER = \"unregister\",\n CALLBACK = \"callback\",\n}\n\ninterface IAppPostParams extends IPostParams {\n // js function id\n uniqueId?: string;\n // native function id\n responseId?: string;\n // event type\n type: EventType;\n}\n\nexport interface IRequestCompletion<T> {\n success?: (res: T) => void;\n failure?: (err: IError) => void;\n}\n\ntype SubscribeEventFunction = (\n params?: any,\n callback?: (data: any) => void\n) => void;\n\nclass Bridge {\n messageHandlers: { [key: string]: any };\n subscribers: { [key: string]: SubscribeEventFunction[] };\n uniqueId: number;\n\n // 当前app版本\n curAppVersion: number;\n\n constructor() {\n if (isSfAppIOS()) {\n window.addEventListener(\"message\", this.onMessage);\n } else if (isSfAppAndroid()) {\n document.addEventListener(\"message\", this.onMessage);\n }\n\n this.messageHandlers = {};\n this.subscribers = {};\n this.uniqueId = 0;\n this.curAppVersion = 0;\n }\n\n onMessage = (msg: any) => {\n let message: any = {};\n if (msg.data && typeof msg.data === \"string\" && msg.data.length > 0) {\n try {\n message = JSON.parse(msg.data);\n } catch (error) {}\n } else if (msg.data) {\n message = msg.data;\n }\n const method = message.method;\n const value = message.value;\n const uniqueId = message.uniqueId;\n const errCode = message.errCode;\n const errMessage = message.errMessage;\n const callbackId = message.callbackId;\n\n if (!method) {\n return;\n }\n\n if (uniqueId) {\n // js call native callback\n const callback = this.messageHandlers[uniqueId];\n if (callback) {\n // 成功的回调\n if (value != null && value != undefined) {\n callback(null, value);\n } else {\n const error: IError = {\n errCode,\n errMessage,\n };\n callback(error, null);\n }\n delete this.messageHandlers[uniqueId];\n }\n } else {\n // native call js\n if (!method) {\n return;\n }\n\n var callback: SubscribeEventFunction;\n if (callbackId) {\n callback = (response: any) => {\n this.dealPostMessage({\n responseId: callbackId,\n method: method,\n params: {\n result: response,\n },\n type: EventType.CALLBACK,\n });\n };\n }\n const subscribers = this.subscribers[method];\n if (subscribers && subscribers.length > 0) {\n subscribers.forEach((handler) => {\n handler(value, callback);\n });\n }\n }\n };\n\n postMessage = <T>(params: IPostParams): Promise<T> => {\n return new Promise((resolve, reject) => {\n this.dealPostMessage(\n { type: EventType.CALL, ...params },\n (error?: IError, result?: any) => {\n if (error) {\n reject(error);\n } else {\n if (result !== null && result !== undefined) {\n resolve(result as T);\n } else {\n const error: IError = {\n errCode: \"-1\",\n errMessage: \"返回的数据错误\",\n };\n reject(error);\n }\n }\n }\n );\n });\n };\n\n private dealPostMessage = (\n params: IAppPostParams,\n callback?: (error?: IError, result?: any) => void\n ) => {\n if (window.ReactNativeWebView || window.parent.ReactNativeWebView) {\n let postParams = params;\n if (callback) {\n const uniqueId =\n \"cb_\" + (this.uniqueId++).toString() + Date.now().toString();\n this.messageHandlers[uniqueId] = callback;\n postParams.uniqueId = uniqueId;\n }\n\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(postParams));\n } else if (window.parent.ReactNativeWebView) {\n window.parent.ReactNativeWebView.postMessage(\n JSON.stringify(postParams)\n );\n }\n } else {\n if (callback) {\n callback({ errCode: \"-2\", errMessage: \"不存在APP事件调用通道\" });\n }\n }\n };\n\n // 注册方法\n subscribeEvent = (handlerName: string, handler: any) => {\n const subscribers = this.subscribers[handlerName] || [];\n subscribers.push(handler);\n this.subscribers[handlerName] = subscribers;\n // 监听者数量大于1,发送注册事件,通知native\n if (subscribers.length > 0) {\n this.dealPostMessage({\n method: handlerName,\n type: EventType.REGISTER,\n });\n }\n };\n\n // 移除注册方法\n unsubscribeEvent = (handlerName: string, handler: any) => {\n const subscribers = this.subscribers[handlerName];\n const index = subscribers.indexOf(handler);\n if (index > -1) {\n subscribers.splice(index, 1);\n this.subscribers[handlerName] = subscribers;\n }\n\n if (subscribers.length <= 0) {\n // 监听者数量小于等于0,发送移除注册事件,通知native\n this.dealPostMessage({\n method: handlerName,\n type: EventType.UNREGISTER,\n });\n }\n };\n}\n\nconst bridge = new Bridge();\nexport default bridge;\n","// interface SytWindow extends Window {\n// ReactNativeWebView: any;\n// }\n// export declare var window: SytWindow;\n\nexport const userAgent = window.navigator.userAgent;\nexport const isSfAppIOS = () => !!userAgent.includes(\"SFEXPRESSAPP-iOS-ML\");\nexport const isSfAppAndroid = () =>\n !!userAgent.includes(\"SFEXPRESSAPP-Android-ML\");\n","import { AxiosTransformer } from \"./types\";\n\nexport const transform = (\n data: any,\n headers: any,\n fns?: AxiosTransformer | AxiosTransformer[]\n): any => {\n if (!fns) return data;\n\n if (!Array.isArray(fns)) {\n fns = [fns];\n }\n\n fns.forEach((fn) => {\n data = fn(data, headers);\n });\n\n return data;\n};\n","import { RequestConfig } from \"./types\";\n\nexport const extend = <T, U>(to: T, from: U): T & U => {\n for (const key in from) {\n (to as T & U)[key] = from[key] as any;\n }\n return to as T & U;\n};\n\nconst strats = Object.create(null);\n\nexport const mergeConfig = (config1: any, config2?: any): RequestConfig => {\n if (!config2) {\n config2 = {};\n }\n\n const config = Object.create(null);\n\n function defaultStrat(val1: any, val2: any): any {\n return typeof val2 !== \"undefined\" ? val2 : val1;\n }\n\n for (const key in config2) {\n if (Object.prototype.hasOwnProperty.call(config2, key)) {\n mergeField(key);\n }\n }\n\n for (const key in config1) {\n if (!Object.prototype.hasOwnProperty.call(config2, key)) {\n mergeField(key);\n }\n }\n\n function mergeField(key: string): void {\n const strat = strats[key] || defaultStrat;\n config[key] = strat(config1[key], config2![key]);\n }\n\n return config;\n};\n","import { RequestConfig } from \"./types\";\n\nconst defaults: RequestConfig = {\n method: \"get\",\n timeout: 0,\n headers: {\n common: {\n Accept: \"application/json, text/plain, */*\",\n },\n },\n};\n\nexport default defaults;\n","import { AppCommon } from \"../basic/appCommon\";\nimport bridge, { IError } from \"../basic/bridge\";\nimport { IPostSFParams } from \"./eventsName\";\n\ninterface IGetReducerDataParams {\n reducerName: string;\n attributes: string[];\n}\n\ninterface ISyncCookieParams {\n data: string;\n}\n\ninterface IGetLocalSourceParams {\n fileName: string;\n}\n\ninterface IGetLocalSourceResponse {\n sourcePath?: string;\n}\n\ninterface ICodeAndMessageResponse {\n code?: string;\n message?: string;\n}\n\ninterface IOpenWXMiniProgramReq {\n appId: string;\n path?: string;\n type?: number;\n}\n\ninterface IOnAliIdVerifyReq {\n /** 顺丰微服务ID */\n appId: string;\n /** 身份信息密文 */\n sign: string;\n}\n\ninterface IOpenAliMiniProgramReq {\n appId: string;\n name: string;\n page: string;\n query: string;\n returnBackSchema?: string;\n}\n\nexport class SFAppCommon extends AppCommon {\n getIMEICode(): Promise<string> {\n const appFunc: IPostSFParams = {\n method: \"startGetIMEICode\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getPushAuthStatus(): Promise<boolean> {\n const appFunc: IPostSFParams = {\n method: \"getPushAuthStatus\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n setPushState(): Promise<ICodeAndMessageResponse> {\n const appFunc: IPostSFParams = {\n method: \"setStateToPush\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n setPushStateNoTimeLimit(): Promise<ICodeAndMessageResponse> {\n const appFunc: IPostSFParams = {\n method: \"setStateToPushNoTimeLimit\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getLocalSource(\n params: IGetLocalSourceParams\n ): Promise<IGetLocalSourceResponse> {\n const appFunc: IPostSFParams = {\n method: \"getLocalWebSource\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getReducerData(params: IGetReducerDataParams): Promise<any> {\n const appFunc: IPostSFParams = {\n method: \"getReducerData\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getDeviceId(): Promise<string> {\n const appFunc: IPostSFParams = {\n method: \"getDeviceId\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getDuDeviceId(): Promise<string> {\n if (window.curAppVersion < 1095400) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.54或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostSFParams = {\n method: \"getDuDeviceId\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n syncCookies(params: ISyncCookieParams) {\n const appFunc: IPostSFParams = {\n method: \"syncCookie\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 打开微信小程序\n * @param params\n * @returns\n */\n openWXMiniProgram(params: IOpenWXMiniProgramReq): Promise<string> {\n if (window.curAppVersion < 1094100) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.41或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostSFParams = {\n method: \"openWXMiniProgram\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 支付宝实名认证\n * @param params\n * @returns\n */\n onAliIdVerify(params: IOnAliIdVerifyReq): Promise<string> {\n if (window.curAppVersion < 1094200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.42或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostSFParams = {\n method: \"onAliIdVerify\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n openAliMiniProgram(params: IOpenAliMiniProgramReq): Promise<string> {\n if (window.curAppVersion < 1097200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.72或以上版本\",\n };\n return Promise.reject(error);\n }\n\n const appFunc: IPostSFParams = {\n method: \"openAliMiniProgram\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","import bridge, { IError } from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\ninterface IOpenCodeScanParams {\n isAPPHandle?: boolean;\n}\n\ninterface IWXSendMessage {\n title?: string; // 标题\n description?: string; // 描述内容\n thumbData?: string; // 缩略图数据 base64字符串\n}\n\ninterface IWXSendImageMessage extends IWXSendMessage {\n mediaObject: string; // 图片 base64字符串\n}\n\ninterface IWXSendMusicMessage extends IWXSendMessage {\n musicUrl: string; // 音频网页的URL地址\n musicLowBandUrl?: string; // 供低带宽环境下使用的音频网页URL地址\n musicDataUrl?: string; // 音频数据的URL地址\n musicLowBandDataUrl?: string; // 供低带宽环境下使用的音频数据URL地址\n}\n\ninterface IWXSendVideoMessage extends IWXSendMessage {\n videoUrl: string; // 视频链接\n videoLowBandUrl?: string; // 供低带宽的环境下使用的视频链接\n}\n\ninterface IWXSendWebpageMessage extends IWXSendMessage {\n webpageUrl: string; // html链接\n}\n\ninterface IWXSendMiniProgramMessage extends IWXSendWebpageMessage {\n userName: string; // 小程序的原始id\n path: string; // 小程序的path\n withShareTicket: boolean; // 是否使用带shareTicket的分享\n miniProgramType?: 0 | 1 | 2; // 小程序的类型,默认正式版 0 正式版 1 开发版 2 体验版\n hdImageData?: string; // 小程序缩略图 base64字符串\n}\n\ninterface IShareMsgToWXParams {\n /**\n * 微信分享类型 0 文本类型,1 图片类型, 2 音乐类型, 3 视频类型, 4 网页类型, 5 小程序类型\n */\n type: 0 | 1 | 2 | 3 | 4 | 5;\n /**\n * 分享目标 0, 聊天界面 1, 朋友圈 2 收藏 3, 指定联系人\n */\n scene: 0 | 1 | 2 | 3;\n message:\n | string\n | IWXSendImageMessage\n | IWXSendMusicMessage\n | IWXSendVideoMessage\n | IWXSendWebpageMessage\n | IWXSendMiniProgramMessage;\n}\n\ninterface IShareMsgToWXResponse {\n respCode?: number;\n}\n\ninterface IGetLocationParams {\n reGeocode: boolean;\n networkState: boolean;\n}\n\ninterface IGetAppVersionResponse {\n clientVersion?: string;\n clientVersionCode?: number;\n}\n\ninterface IOnSelectContactResponse {\n contacts?: any[];\n errCode?: string;\n errMessage?: string;\n}\n\ninterface ISaveImageToLocalParams {\n base64: string;\n}\n\ninterface ISaveImageToLocalResponse {\n errCode?: string;\n errMessage?: string;\n}\n\nexport interface ISFAddressParams {\n encryptKey: string;\n /** 需要返回的地址数据的字段,可为空 */\n returnValue?: string[];\n}\n\ninterface IPasteStringParams {\n content: string;\n}\n\ninterface ICheckPermissionReq {\n permissionType:\n | \"user\"\n | \"device\"\n | \"location\"\n | \"camera\"\n | \"photo\"\n | \"contacts\"\n | \"storage\"\n | \"callPhone\"\n | \"microphone\";\n}\n\n\ninterface ICalendarEventReq {\n /**\n * Id of edited event. For edit、delete\n */\n eventId?: string;\n /**\n * 1- 新增,2-修改 , 3 查看 或 删除,开启系统日历事件页面,由用户决定具体操作\n */\n actionType?: number;\n\n /**\n * 日历事件参数,如果是添加,该参数必传\n */\n eventParams?: ICalendarEventParams\n}\n\n\ninterface ICalendarEventParams {\n title?: string;\n /**\n * in UTC, format: 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n */\n startDate?: string;\n /**\n * in UTC, format: 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n */\n endDate?: string;\n location?: string;\n allDay?: boolean;\n /**\n * iOS only\n */\n url?: string;\n /**\n * The notes (iOS) or description (Android) associated with the event.\n */\n notes?: string;\n}\n\n\n\ninterface ICalendarEventResp {\n // 0 成功, -1 失败, -2 取消操作\n result: number;\n calendarItemId: string;\n eventId: string;\n}\n\ninterface IPhotoReq {\n /** 图片裁剪 */\n edit: boolean;\n /** 展示无权限提示框 */\n showPermissionAlert: boolean;\n}\ninterface IPhotoResponse {\n /** 图片宽度 */\n width: number;\n /** 图片高度 */\n height: number;\n /** 图片大小 */\n size: number;\n /** 图片base64 数据 */\n data: string;\n}\n\ninterface IGetAddedWidgetsResponse {\n /** 设备ID */\n deviceId: number;\n /** 用户ID */\n memberId: number;\n /** 组件列表 */\n widgets: String[];\n}\n\ninterface IOpenMapAppLocation {\n lat: string;\n lng: string;\n address?: string;\n type?: string;\n}\n\nexport class AppCommon {\n constructor() {\n this.getAppVersion()\n .then((res) => {\n if (res && res.clientVersionCode) {\n try {\n window.curAppVersion = Number(res.clientVersionCode);\n } catch (error) {}\n }\n })\n .catch((err) => {});\n }\n\n openScan(params: IOpenCodeScanParams): Promise<string> {\n const appFunc: IPostBasicParams = {\n method: \"startScanCode\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n shareMsgToWXAPI(params: IShareMsgToWXParams): Promise<IShareMsgToWXResponse> {\n const appFunc: IPostBasicParams = {\n method: \"shareMessageToWXReq\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getLocation(params: IGetLocationParams): Promise<any> {\n const appFunc: IPostBasicParams = {\n method: \"currentLocation\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getAppVersion(): Promise<IGetAppVersionResponse> {\n const appFunc: IPostBasicParams = {\n method: \"appVersion\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n onSelectContacts(): Promise<IOnSelectContactResponse> {\n const appFunc: IPostBasicParams = {\n method: \"selectContacts\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n onSaveImageToLocal(\n params: ISaveImageToLocalParams\n ): Promise<ISaveImageToLocalResponse> {\n const appFunc: IPostBasicParams = {\n method: \"saveImageToLocal\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getEnvironment(): Promise<string> {\n const appFunc: IPostBasicParams = {\n method: \"getEnvironment\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取顺丰地址列表\n * @returns 返回为json string加密的字符串,需密钥解密\n */\n getSFAddress(params: ISFAddressParams): Promise<string> {\n const appFunc: IPostBasicParams = {\n method: \"selectAddress\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 复制字符串\n */\n pasteString(params: IPasteStringParams): Promise<boolean> {\n const appFunc: IPostBasicParams = {\n method: \"pasteString\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getDeviceModel(): Promise<string> {\n if (window.curAppVersion < 1094200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.42或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"getDeviceModel\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 检查授权状态\n * @param params\n * @returns\n */\n checkPermission(params: ICheckPermissionReq): Promise<string> {\n if (window.curAppVersion < 1094200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.42或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"checkPermission\",\n params,\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 拍照\n */\n takePhoto(params: IPhotoReq): Promise<IPhotoResponse> {\n if (window.curAppVersion < 1094800) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.48或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"takePhoto\",\n params,\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 从相册中选择\n */\n selectPhoto(params: IPhotoReq): Promise<IPhotoResponse> {\n if (window.curAppVersion < 1094800) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.48或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"selectPhoto\",\n params,\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取组件信息\n */\n getAddedWidgets(): Promise<IGetAddedWidgetsResponse> {\n if (window.curAppVersion < 1094700) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.47或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"getAddedWidgets\",\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 跳转到 应用评价页面\n */\n goToAppMarketEvaluation(): Promise<boolean> {\n if (window.curAppVersion < 1095000) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.50或以上版本\",\n };\n return Promise.reject(error);\n }\n\n const appFunc: IPostBasicParams = {\n method: \"goToAppMarketEvaluation\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 打开地图app\n * @param location 目标地址,请使用gcj02\n * @returns\n */\n openMapApps(location: IOpenMapAppLocation): Promise<void> {\n if (window.curAppVersion < 1096200) {\n const error: IError = {\n errCode: \"10\",\n errMessage:\n \"当前APP版本不支持,请使用9.62或以上版本\" + window.curAppVersion,\n };\n return Promise.reject(error);\n }\n\n const appFunc: IPostBasicParams = {\n method: \"openMapApps\",\n params: location,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 添加、修改、删除 日历中的事件\n */\n calendarEvent(params: ICalendarEventReq): Promise<ICalendarEventResp> {\n\n const appFunc: IPostBasicParams = {\n method: \"calendarEvent\",\n params\n };\n return bridge.postMessage(appFunc);\n }\n\n}\n","import { AppNavigator } from \"../basic/appNavigator\";\nimport bridge from \"../basic/bridge\";\nimport { IPostSFParams } from \"./eventsName\";\n\ninterface ISetNavigatorCanBackParams {\n canBack?: boolean;\n}\n\ninterface NavigationParams {\n [key: string]: any;\n}\n\ninterface INavigateParams {\n routeName: string;\n params?: NavigationParams;\n needLogin?: boolean; // 跳转的页面是否需要登录 默认:false\n oneAndOnlyPage?: boolean; // 应用是否只存在唯一该页面 默认:true\n replaceCurrentPage?: boolean; // 是否将当前页面移除并进行跳转目标页面 默认:false\n allowMultipleJumps?: boolean; // 是否允许多次跳转 默认:false\n shouldReload?: boolean; // 如果跳转的页面为已有的页面,是否需要重新加载 默认:false\n type?: any; // 用于清空外部非法变量使用,该值没有任何作用,不要进行设置\n userRegisterSourceChannelName?: string; //用户注册来源渠道名称\n}\n\nexport class SFAppNavigator extends AppNavigator {\n /**\n * 设置返回按钮是否可以返回\n * @param canBack\n */\n setNavigatorCanBack(canBack: boolean) {\n const data: ISetNavigatorCanBackParams = {\n canBack,\n };\n\n const appFunc: IPostSFParams = {\n method: \"setCanBack\",\n params: data,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 页面跳转方法\n * @param params\n */\n navigate(params: INavigateParams) {\n const appFunc: IPostSFParams = {\n method: \"navigate\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n}\n","import bridge, { IPostParams, IRequestCompletion } from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\ninterface ILoadUrlParams {\n /** 页面名称/主标题 - 通用场景 */\n title: string;\n /** 副标题 - 通用场景 */\n subTitle?: string;\n /** 标签 - 通用场景 */\n tagTitle?: string;\n /** H5 跳转信息 - 通用场景 */\n source?: {\n /** H5 URL信息 - 通用场景 */\n uri?: string;\n /** 请求头对象 */\n headers?: Object;\n };\n miniapp?: any;\n /** 域名(用做区分签名文件,可为空) - 通用H5鉴权场景 */\n domain?: string;\n /** 是否需要签名(签名信息,例:mobile=xxxx&memNo=xxxx&memberId=xxxx)- 通用H5鉴权场景 */\n needSign?: boolean;\n /** 是否一定需要用户信息(值为true时,强制needLogin为true)- 快捷入口场景 */\n mustUserInfo?: boolean;\n /** 跳转名称 - 下单快捷入口场景 */\n jumpName?: string;\n /** 是否EnCode 编码(默认false) - 通用H5鉴权场景 */\n isEncode?: boolean;\n /** 扩展签名字段 (会请求CCMAS后台接口对参数进行签名,然后将签名之后的字符串追加到url后面 例:&channelCode=SFAPP&subChnlCode=appwcfuli)- 通用H5鉴权场景 */\n extendSign?: string;\n /** 扩展不需要签名字段 (直接追加到URL后面,例:&channelCode=SFAPP&subChnlCode=appwcfuli)- 通用H5鉴权场景 */\n extendNoSign?: string;\n /** 渠道标识 - 礼品卡系统鉴权场景 */\n channelSource?: string;\n /** 目标页面标记 - 礼品卡系统鉴权场景 */\n toPage?: string;\n /** 是否需要请求时间 1需要,0不需要 - 通用H5鉴权场景 */\n needReqTime?: string;\n /** 是否自动调用 RN 页面的默认 Init 方法 */\n shouldInit?: boolean;\n /** 插入的js */\n injectedJavaScript?: string;\n}\n\ninterface INavigatorStyle {\n titleStyle?: any;\n leftTextStyle?: any;\n leftImageColor?: string;\n rightTextStyle?: any;\n rightImageColor?: string;\n barImageStyle?: any;\n barImageUri?: string;\n style?: any;\n fontColor?: string;\n title?: string;\n hidden?: boolean;\n barStyle?: any;\n contentMode?: \"fullScreen\" | \"stateBar\" | \"navigationBar\" | number;\n themeMode?: \"light\" | \"dark\";\n}\n\ninterface ISetNavigatorTitleParams {\n title?: string;\n}\n\ninterface INavigatorFrameResponse {\n statusbar: { x: number; y: number; width: number; height: number };\n navigationBar: { x: number; y: number; width: number; height: number };\n}\n\nexport class AppNavigator {\n /**\n * 关闭当前h5应用\n * 对应app9.38版本升级为携带参数\n */\n closeH5App(params?: any) {\n const appFunc: IPostBasicParams = {\n method: \"backToBefore\",\n params: params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 设置导航栏标题\n * @param params\n */\n setNavigatorTitle(params: ISetNavigatorTitleParams) {\n const appFunc: IPostBasicParams = {\n method: \"setTitle\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 设置导航栏样式\n * @param params\n */\n setNavigatorStyle(params: INavigatorStyle) {\n const appFunc: IPostBasicParams = {\n method: \"setStyle\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 获取导航页和状态栏的frame\n */\n getNavigatorFrame(): Promise<INavigatorFrameResponse> {\n const appFunc: IPostBasicParams = {\n method: \"getNavigationFrame\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n loadUrl(params: ILoadUrlParams) {\n const appFunc: IPostBasicParams = {\n method: \"loadUrl\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 返回上一页\n */\n onGoBack() {\n const appFunc: IPostBasicParams = {\n method: \"goBack\",\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 监听返回事件\n * @param callback\n */\n onBackPressedListener(callback: (data: any) => boolean) {\n bridge.subscribeEvent(\n \"onBackPressed\",\n (params: any, responseCallback: (result: any) => void) => {\n const res = callback(params);\n responseCallback(res);\n }\n );\n }\n}\n","import { AppPay, IPayResult } from \"../basic/appPay\";\nimport bridge from \"../basic/bridge\";\nimport { IPostSFParams } from \"./eventsName\";\n\ninterface IPayBySVIPParams {\n reqId: string;\n amt: string;\n requestIp: string;\n businessCode: string;\n mchNo: string;\n goodsName: string;\n goodsDesc: string;\n signedData: string;\n}\n\ninterface IPayBySDKParams {\n amt: string;\n mchNo: string;\n mchOrderNo: string;\n payURL: string;\n signData: string;\n signType?: string;\n requestTime: string;\n orderBeginTime: string;\n goodsName: string;\n goodsDesc: string;\n businessCode: string;\n payMethod: number;\n goodsTag?: string;\n}\n\ninterface IWxAutoPaySignParams {\n entrustId: string;\n}\n\ninterface IWxAutoPaySignResponse {\n respCode: number;\n}\n\ninterface IOnDigiCnyPayResultParams {\n status:\n | 0 // 支付失败\n | 1 // 支付成功\n | 2 // 支付中\n | 3; // 订单关闭\n}\n\ninterface IPayByWXMiniProgram {\n payToken: string;\n}\n\nexport interface IPayByWXMiniProgramResult {\n result: boolean;\n}\n\nclass PayParams {\n amt: string = \"0\"; // 金额\n payMethod: number = 1; // 1.微信 2.支付宝\n mchNo: string = \"\"; // 商户号\n mchOrderNo: string = \"\"; // 商户订单号\n payURL: string = \"\"; // 支付平台接收支付通知的地址\n signData: string = \"\"; // 签名\n signType?: string = \"\"; // 签名加密类型\n requestTime: string = \"\"; // 发起请求时间\n orderBeginTime: string = \"\"; // 订单开始时间\n goodsName: string = \"\"; // 物品名称\n goodsDesc: string = \"\"; // 物品描述\n businessCode: string = \"0000\"; // 支付业务类型 0000: 大网运费支付 0007:同城运费支付\n goodsTag?: string; // 微信代金券标识\n specialExt?: any; //扩展字段\n}\n\ninterface IPayResponse {\n result: IPayResult;\n payParams?: PayParams;\n}\n\ninterface IPayWaybillByPayIdParams {\n payId: string;\n}\n\ninterface IPayBySfParams {\n orderStr: string;\n}\n\ninterface IPayBySfResponse {\n code?: number;\n message?: string;\n}\n\nexport class SFAppPay extends AppPay {\n payBySVIP(params: IPayBySVIPParams): Promise<IPayResponse> {\n const appFunc: IPostSFParams = {\n method: \"payBySVIP\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n payBySDK(params: IPayBySDKParams): Promise<IPayResult> {\n const appFunc: IPostSFParams = {\n method: \"payBySDK\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n payBySf(params: IPayBySfParams): Promise<IPayBySfResponse> {\n const appFunc: IPostSFParams = {\n method: \"payBySf\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n wxAutoPaySignReq(\n params: IWxAutoPaySignParams\n ): Promise<IWxAutoPaySignResponse> {\n const appFunc: IPostSFParams = {\n method: \"wxAutoPaySignReq\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n onDigiCnyPayResult(params: IOnDigiCnyPayResultParams) {\n const appFunc: IPostSFParams = {\n method: \"digiCnyPayResult\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n payWaybillByPayId(params: IPayWaybillByPayIdParams) {\n const appFunc: IPostSFParams = {\n method: \"payWaybillByPayId\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n payByWXMiniProgram(\n params: IPayByWXMiniProgram\n ): Promise<IPayByWXMiniProgramResult> {\n const appFunc: IPostSFParams = {\n method: \"payByWXMiniProgram\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","import bridge from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\ninterface IPayByWeChatParams {\n partnerId: string; //商户id\n prepayId: string; // 预支付id\n nonceStr: string; //随机字符串\n timeStamp: string; //时间戳\n sign: string; //签名\n package: string; //\n}\n\ninterface IPayByAliParams {\n orderStr: string;\n}\n\nexport interface INativePayResult {\n result: IPayResult;\n}\n\nexport interface IPayResult {\n channelType: string; // 支付方式\n status: string | number;\n message: string;\n channelResult: object;\n}\n\nexport class AppPay {\n payByWeChat(params: IPayByWeChatParams): Promise<INativePayResult> {\n const appFunc: IPostBasicParams = {\n method: \"payByWeChat\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n payByAli(params: IPayByAliParams): Promise<INativePayResult> {\n const appFunc: IPostBasicParams = {\n method: \"payByAli\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","import { AppUser } from \"../basic/appUser\";\n\nexport class SFAppUser extends AppUser {}\n","import bridge from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\nexport interface IAuthorizeParams {\n appid: string;\n scope: string;\n reserved: string;\n}\n\nexport interface IAuthorizeResponse {\n errorCode: string;\n code: string;\n reserved: string;\n}\n\nexport interface IGetUserInfoParams {\n needLogin?: boolean;\n domain?: string;\n}\n\nexport interface IGetUserBaseInfoParams {\n needLogin?: boolean;\n}\n\nexport interface IGetUserBaseInfoResponse {\n nickName?: string;\n birthday?: string;\n sex?: string;\n}\n\nexport interface IGetUserAvatarParams {\n needLogin?: boolean;\n}\n\nexport class AppUser {\n /**\n * 调用OAuth2.0 授权接口\n * @param params\n * @returns\n */\n authorize(params: IAuthorizeParams): Promise<IAuthorizeResponse> {\n const appFunc: IPostBasicParams = {\n method: \"authorize\",\n params: params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 老版本鉴权,获取用户数据,仅内部使用\n * @param params\n * @returns\n */\n getUserInfo(params: IGetUserInfoParams): Promise<string> {\n const data: IGetUserInfoParams = {\n needLogin: params.needLogin || true,\n domain: params.domain,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"getUserInfo\",\n params: data,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取用户基本信息\n * @param params\n * @returns\n */\n getUserBaseInfo(\n params: IGetUserBaseInfoParams\n ): Promise<IGetUserBaseInfoResponse> {\n const data: IGetUserBaseInfoParams = {\n needLogin: params.needLogin || true,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"getUserBaseInfo\",\n params: data,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取用户头像\n * @param params\n * @returns\n */\n getUserAvatar(params: IGetUserAvatarParams): Promise<string> {\n const data: IGetUserAvatarParams = {\n needLogin: params.needLogin || true,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"getUserAvatar\",\n params: data,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(0);\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://sytTunnel/webpack/universalModuleDefinition","webpack://sytTunnel/./src/indexsf.ts","webpack://sytTunnel/./src/core/basic/appFetch/index.ts","webpack://sytTunnel/./src/core/basic/appFetch/appFetch.ts","webpack://sytTunnel/./src/core/basic/appFetch/InterceptorManager.ts","webpack://sytTunnel/./src/core/basic/appFetch/dispatchRequest.ts","webpack://sytTunnel/./src/core/basic/appFetch/sytFetch.ts","webpack://sytTunnel/./src/core/basic/bridge.ts","webpack://sytTunnel/./src/core/basic/tools.ts","webpack://sytTunnel/./src/core/basic/appFetch/transform.ts","webpack://sytTunnel/./src/core/basic/appFetch/utils.ts","webpack://sytTunnel/./src/core/basic/appFetch/defaults.ts","webpack://sytTunnel/./src/core/extension/appBle.ts","webpack://sytTunnel/./src/core/extension/appCommon.ts","webpack://sytTunnel/./src/core/basic/appCommon.ts","webpack://sytTunnel/./src/core/extension/appNavigator.ts","webpack://sytTunnel/./src/core/basic/appNavigator.ts","webpack://sytTunnel/./src/core/extension/appPay.ts","webpack://sytTunnel/./src/core/basic/appPay.ts","webpack://sytTunnel/./src/core/extension/appUser.ts","webpack://sytTunnel/./src/core/basic/appUser.ts","webpack://sytTunnel/webpack/bootstrap","webpack://sytTunnel/webpack/startup"],"names":["root","factory","exports","module","define","amd","self","this","appFetch","appCommon","SFAppCommon","appNavigator","SFAppNavigator","appPay","SFAppPay","appUser","SFAppUser","appBle","SFAppBle","initConfig","defaults","interceptors","request","response","url","config","mergeConfig","chain","resolved","dispatchRequest","rejected","undefined","forEach","interceptor","unshift","push","promise","Promise","resolve","length","shift","then","get","_requestMethodWhithoutData","delete","head","options","post","data","_requestMethodWhithData","put","patch","method","Object","assign","AppFetch","createInstance","context","instance","prototype","bind","extend","default","create","use","eject","id","fn","newConfig","processConfig","sytFetch","transformURL","transform","headers","params","baseURL","isAbsoluteURL","combineURL","buildURL","test","relativeURL","replace","paramsSerializer","serializedParams","isURLSearchParams","toString","keys","key","val","values","Array","isArray","isDate","toISOString","isPlainObject","JSON","stringify","encode","join","markIndex","indexOf","slice","encodeURIComponent","call","isObject","URLSearchParams","deepMerge","result","objs","obj","appFunc","body","timeout","withCredentials","reject","postMessage","resData","err","errCode","name","errMessage","message","res","status","statusText","catch","EventType","bridge","onMessage","msg","parse","error","value","uniqueId","callbackId","messageHandlers","callback","dealPostMessage","responseId","type","CALLBACK","subscribers","handler","CALL","window","ReactNativeWebView","parent","postParams","Date","now","subscribeEvent","handlerName","REGISTER","unsubscribeEvent","index","splice","UNREGISTER","isSfAppIOS","addEventListener","isSfAppAndroid","document","curAppVersion","userAgent","navigator","includes","fns","to","from","strats","config1","config2","defaultStrat","val1","val2","hasOwnProperty","mergeField","strat","common","Accept","blePrint","getIMEICode","getPushAuthStatus","setPushState","setPushStateNoTimeLimit","getLocalSource","getReducerData","getDeviceId","getDuDeviceId","syncCookies","openWXMiniProgram","onAliIdVerify","openAliMiniProgram","AppCommon","getAppVersion","clientVersionCode","Number","openScan","shareMsgToWXAPI","getLocation","onSelectContacts","onSaveImageToLocal","getEnvironment","getSFAddress","pasteString","getDeviceModel","checkPermission","takePhoto","selectPhoto","getAddedWidgets","goToAppMarketEvaluation","openMapApps","location","calendarEvent","setNavigatorCanBack","canBack","navigate","AppNavigator","closeH5App","setNavigatorTitle","setNavigatorStyle","getNavigatorFrame","loadUrl","onGoBack","onBackPressedListener","responseCallback","payBySVIP","payBySDK","payBySf","wxAutoPaySignReq","onDigiCnyPayResult","payWaybillByPayId","payByWXMiniProgram","AppPay","payByWeChat","payByAli","AppUser","authorize","getUserInfo","needLogin","domain","getUserBaseInfo","getUserAvatar","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"mappings":"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","file":"main-fcee55.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sytTunnel\"] = factory();\n\telse\n\t\troot[\"sytTunnel\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn ","import appFetch from \"./core/basic/appFetch\";\nimport { SFAppBle } from \"./core/extension/appBle\";\nimport { SFAppCommon } from \"./core/extension/appCommon\";\nimport { SFAppNavigator } from \"./core/extension/appNavigator\";\nimport { SFAppPay } from \"./core/extension/appPay\";\nimport { SFAppUser } from \"./core/extension/appUser\";\n\nconst appCommon = new SFAppCommon();\nconst appNavigator = new SFAppNavigator();\nconst appPay = new SFAppPay();\nconst appUser = new SFAppUser();\nconst appBle = new SFAppBle();\n\nexport { appFetch };\nexport { appUser };\nexport { appPay };\nexport { appCommon };\nexport { appNavigator };\nexport { appBle };\n","import appFetch from \"./appFetch\";\nexport * from \"./types\";\n\nexport default appFetch;\n","import InterceptorManager from \"./InterceptorManager\";\nimport {\n AppFetchStatic,\n FetchPromise,\n Method,\n RejectedFn,\n RequestConfig,\n ResolveFn,\n Response,\n} from \"./types\";\nimport { dispatchRequest } from \"./dispatchRequest\";\nimport { extend, mergeConfig } from \"./utils\";\nimport defaults from \"./defaults\";\n\ninterface Interceptors {\n request: InterceptorManager<RequestConfig>;\n response: InterceptorManager<Response>;\n}\n\ninterface PromiseChain<T> {\n resolved: ResolveFn<T> | ((config: RequestConfig) => FetchPromise);\n rejected?: RejectedFn;\n}\n\nexport class AppFetch {\n defaults: RequestConfig;\n interceptors: Interceptors;\n constructor(initConfig: RequestConfig) {\n this.defaults = initConfig;\n this.interceptors = {\n request: new InterceptorManager<RequestConfig>(),\n response: new InterceptorManager<Response>(),\n };\n }\n\n request<T = any>(url: string | RequestConfig, config?: any): FetchPromise<T> {\n if (typeof url === \"string\") {\n if (!config) {\n config = {};\n }\n config.url = url;\n } else {\n config = url;\n }\n\n config = mergeConfig(this.defaults, config);\n\n const chain: PromiseChain<any>[] = [\n { resolved: dispatchRequest, rejected: undefined },\n ];\n\n this.interceptors.request.forEach((interceptor) => {\n chain.unshift(interceptor);\n });\n\n this.interceptors.response.forEach((interceptor) => {\n chain.push(interceptor);\n });\n\n let promise = Promise.resolve(config);\n\n while (chain.length) {\n const { resolved, rejected } = chain.shift()!;\n promise = promise.then(resolved, rejected);\n }\n\n return promise;\n }\n\n get(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"get\", url, config);\n }\n\n delete(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"delete\", url, config);\n }\n\n head(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"head\", url, config);\n }\n\n options(url: string, config: RequestConfig): FetchPromise {\n return this._requestMethodWhithoutData(\"options\", url, config);\n }\n\n post(url: string, data?: any, config?: RequestConfig): FetchPromise {\n return this._requestMethodWhithData(\"post\", url, data, config);\n }\n\n put(url: string, data?: any, config?: RequestConfig): FetchPromise {\n return this._requestMethodWhithData(\"put\", url, data, config);\n }\n\n patch(url: string, data?: any, config?: RequestConfig): FetchPromise {\n return this._requestMethodWhithData(\"patch\", url, data, config);\n }\n\n _requestMethodWhithoutData(\n method: Method,\n url: string,\n config?: RequestConfig\n ) {\n return this.request(\n Object.assign(config || {}, {\n method,\n url,\n })\n );\n }\n\n _requestMethodWhithData(\n method: Method,\n url: string,\n data?: any,\n config?: RequestConfig\n ) {\n return this.request(\n Object.assign(config || {}, {\n method,\n url,\n data,\n })\n );\n }\n}\n\nconst createInstance = (config: RequestConfig): AppFetchStatic => {\n const context = new AppFetch(config);\n const instance = AppFetch.prototype.request.bind(context);\n extend(instance, context);\n return instance as AppFetchStatic;\n};\n\nconst appFetch = createInstance(defaults);\nappFetch.create = (config: RequestConfig) => {\n return createInstance(mergeConfig(defaults, config));\n};\nappFetch.AppFetch = AppFetch;\n\nexport default appFetch;\n","import * as utils from \"../utils\";\nimport { RejectedFn, RequestConfig, ResolveFn, Response } from \"./types\";\n\ninterface Interceptor<T> {\n resolved: ResolveFn<T>;\n rejected?: RejectedFn;\n}\n\nexport default class InterceptorManager<T> {\n private interceptors: (Interceptor<T> | null)[];\n\n constructor() {\n this.interceptors = [];\n }\n\n use(resolved: ResolveFn<T>, rejected?: RejectedFn): number {\n this.interceptors.push({\n resolved,\n rejected,\n });\n return this.interceptors.length - 1;\n }\n\n eject(id: number): void {\n if (this.interceptors[id]) {\n this.interceptors[id] = null;\n }\n }\n\n forEach(fn: (Interceptor: Interceptor<T>) => void): void {\n this.interceptors.forEach((interceptor) => {\n if (interceptor !== null) {\n fn(interceptor);\n }\n });\n }\n}\n","import { sytFetch } from \"./sytFetch\";\nimport { transform } from \"./transform\";\nimport { FetchPromise, RequestConfig } from \"./types\";\n\nexport const dispatchRequest = (config: RequestConfig): FetchPromise => {\n const newConfig = processConfig(config);\n return sytFetch(newConfig);\n};\n\nconst processConfig = (config: RequestConfig) => {\n config.url = transformURL(config);\n config.data = transform(config.data, config.headers);\n return config;\n};\n\nexport const transformURL = (config: RequestConfig): string => {\n const { params, baseURL } = config;\n let { url } = config;\n if (baseURL && !isAbsoluteURL(url!)) {\n url = combineURL(baseURL, url);\n }\n\n return buildURL(url!, params);\n};\n\nexport const isAbsoluteURL = (url: string): boolean => {\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\nexport const combineURL = (baseURL: string, relativeURL?: string): string => {\n return relativeURL\n ? baseURL.replace(/\\/+$/, \"\") + \"/\" + relativeURL.replace(/^\\/+/, \"\")\n : baseURL;\n};\n\nexport const buildURL = (\n url: string,\n params?: any,\n paramsSerializer?: (params: any) => string\n): string => {\n if (!params) {\n return url;\n }\n\n let serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n const parts: string[] = [];\n\n Object.keys(params).forEach((key) => {\n const val = params[key];\n if (val === null || typeof val === \"undefined\") {\n return;\n }\n let values = [];\n if (Array.isArray(val)) {\n values = val;\n key += \"[]\";\n } else {\n values = [val];\n }\n values.forEach((val) => {\n if (isDate(val)) {\n val = val.toISOString();\n } else if (isPlainObject(val)) {\n val = JSON.stringify(val);\n }\n parts.push(`${encode(key)}=${encode(val)}`);\n });\n });\n\n serializedParams = parts.join(\"&\");\n }\n\n if (serializedParams) {\n const markIndex = url.indexOf(\"#\");\n if (markIndex !== -1) {\n url = url.slice(0, markIndex);\n }\n url += (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + serializedParams;\n }\n\n return url;\n};\n\nconst encode = (val: string): string => {\n return encodeURIComponent(val)\n .replace(/%40/g, \"@\")\n .replace(/%3A/gi, \":\")\n .replace(/%24/g, \"$\")\n .replace(/%2C/gi, \",\")\n .replace(/%20/g, \"+\") // 约定将 空格 号转为 +\n .replace(/%5B/gi, \"[\")\n .replace(/%5D/gi, \"]\");\n};\n\nexport const isDate = (val: any): val is Date => {\n return Object.prototype.toString.call(val) === \"[object Date]\";\n};\n\nexport const isObject = (val: any): val is Object => {\n return val !== null && typeof val === \"object\";\n};\n\nexport const isPlainObject = (val: any): val is Object => {\n return toString.call(val) === \"[object Object]\";\n};\n\nexport const isURLSearchParams = (val: any): val is URLSearchParams => {\n return typeof val !== undefined && val instanceof URLSearchParams;\n};\n\nexport const deepMerge = (...objs: any[]): any => {\n const result = Object.create(null);\n\n objs.forEach((obj) => {\n if (obj) {\n Object.keys(obj).forEach((key) => {\n const val = obj[key];\n if (isPlainObject(val)) {\n if (isPlainObject(result[key])) {\n result[key] = deepMerge(result[key], val);\n } else {\n result[key] = deepMerge(val);\n }\n } else {\n result[key] = val;\n }\n });\n }\n });\n\n return result;\n};\n","import bridge, { IPostParams, IRequestCompletion } from \"../bridge\";\nimport { IPostBasicParams } from \"../eventsName\";\nimport { FetchPromise, RequestConfig, Response } from \"./types\";\n\nexport interface IRequestParams {\n url?: string;\n method?: string;\n body?: any;\n headers?: any;\n timeout?: number;\n withCredentials?: \"omit\" | \"same-origin\" | \"include\";\n}\n\nexport interface IAppFetchResponse {\n res: any;\n headers: any;\n status: number;\n statusText: string;\n}\n\nexport const sytFetch = (config: RequestConfig): FetchPromise => {\n const {\n data = null,\n url,\n method = \"get\",\n headers,\n timeout,\n withCredentials,\n } = config;\n\n const request: IRequestParams = {\n url,\n method,\n body: data,\n headers,\n timeout,\n withCredentials,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"sytFetch\",\n params: request,\n };\n\n return new Promise((resolve, reject) => {\n bridge\n .postMessage(appFunc)\n .then((result: any) => {\n const resData = result.data;\n\n if (!resData) {\n reject({\n errCode: \"-1\",\n errMessage: \"没有返回data数据\",\n });\n return;\n }\n\n const err = resData.err;\n if (err) {\n const errCode = err.name || \"-1\";\n const errMessage = err.message || \"\";\n reject({ errCode, errMessage });\n return;\n }\n\n const res = resData.res;\n const headers = resData.headers;\n const status = resData.status;\n const statusText = resData.statusText;\n\n const response: Response = {\n status: status,\n statusText: statusText,\n data: res,\n config,\n headers: headers,\n };\n resolve(response);\n })\n .catch((err) => {\n reject(err);\n });\n });\n};\n","import { isSfAppAndroid, isSfAppIOS } from \"./tools\";\n\nexport interface IPostParams {\n method: string;\n params?: any;\n}\n\nexport interface IError {\n errCode?: string;\n errMessage?: string;\n}\n\nenum EventType {\n CALL = \"call\",\n REGISTER = \"register\",\n UNREGISTER = \"unregister\",\n CALLBACK = \"callback\",\n}\n\ninterface IAppPostParams extends IPostParams {\n // js function id\n uniqueId?: string;\n // native function id\n responseId?: string;\n // event type\n type: EventType;\n}\n\nexport interface IRequestCompletion<T> {\n success?: (res: T) => void;\n failure?: (err: IError) => void;\n}\n\ntype SubscribeEventFunction = (\n params?: any,\n callback?: (data: any) => void\n) => void;\n\nclass Bridge {\n messageHandlers: { [key: string]: any };\n subscribers: { [key: string]: SubscribeEventFunction[] };\n uniqueId: number;\n\n // 当前app版本\n curAppVersion: number;\n\n constructor() {\n if (isSfAppIOS()) {\n window.addEventListener(\"message\", this.onMessage);\n } else if (isSfAppAndroid()) {\n document.addEventListener(\"message\", this.onMessage);\n }\n\n this.messageHandlers = {};\n this.subscribers = {};\n this.uniqueId = 0;\n this.curAppVersion = 0;\n }\n\n onMessage = (msg: any) => {\n let message: any = {};\n if (msg.data && typeof msg.data === \"string\" && msg.data.length > 0) {\n try {\n message = JSON.parse(msg.data);\n } catch (error) {}\n } else if (msg.data) {\n message = msg.data;\n }\n const method = message.method;\n const value = message.value;\n const uniqueId = message.uniqueId;\n const errCode = message.errCode;\n const errMessage = message.errMessage;\n const callbackId = message.callbackId;\n\n if (!method) {\n return;\n }\n\n if (uniqueId) {\n // js call native callback\n const callback = this.messageHandlers[uniqueId];\n if (callback) {\n // 成功的回调\n if (value != null && value != undefined) {\n callback(null, value);\n } else {\n const error: IError = {\n errCode,\n errMessage,\n };\n callback(error, null);\n }\n delete this.messageHandlers[uniqueId];\n }\n } else {\n // native call js\n if (!method) {\n return;\n }\n\n var callback: SubscribeEventFunction;\n if (callbackId) {\n callback = (response: any) => {\n this.dealPostMessage({\n responseId: callbackId,\n method: method,\n params: {\n result: response,\n },\n type: EventType.CALLBACK,\n });\n };\n }\n const subscribers = this.subscribers[method];\n if (subscribers && subscribers.length > 0) {\n subscribers.forEach((handler) => {\n handler(value, callback);\n });\n }\n }\n };\n\n postMessage = <T>(params: IPostParams): Promise<T> => {\n return new Promise((resolve, reject) => {\n this.dealPostMessage(\n { type: EventType.CALL, ...params },\n (error?: IError, result?: any) => {\n if (error) {\n reject(error);\n } else {\n if (result !== null && result !== undefined) {\n resolve(result as T);\n } else {\n const error: IError = {\n errCode: \"-1\",\n errMessage: \"返回的数据错误\",\n };\n reject(error);\n }\n }\n }\n );\n });\n };\n\n private dealPostMessage = (\n params: IAppPostParams,\n callback?: (error?: IError, result?: any) => void\n ) => {\n if (window.ReactNativeWebView || window.parent.ReactNativeWebView) {\n let postParams = params;\n if (callback) {\n const uniqueId =\n \"cb_\" + (this.uniqueId++).toString() + Date.now().toString();\n this.messageHandlers[uniqueId] = callback;\n postParams.uniqueId = uniqueId;\n }\n\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(postParams));\n } else if (window.parent.ReactNativeWebView) {\n window.parent.ReactNativeWebView.postMessage(\n JSON.stringify(postParams)\n );\n }\n } else {\n if (callback) {\n callback({ errCode: \"-2\", errMessage: \"不存在APP事件调用通道\" });\n }\n }\n };\n\n // 注册方法\n subscribeEvent = (handlerName: string, handler: any) => {\n const subscribers = this.subscribers[handlerName] || [];\n subscribers.push(handler);\n this.subscribers[handlerName] = subscribers;\n // 监听者数量大于1,发送注册事件,通知native\n if (subscribers.length > 0) {\n this.dealPostMessage({\n method: handlerName,\n type: EventType.REGISTER,\n });\n }\n };\n\n // 移除注册方法\n unsubscribeEvent = (handlerName: string, handler: any) => {\n const subscribers = this.subscribers[handlerName];\n const index = subscribers.indexOf(handler);\n if (index > -1) {\n subscribers.splice(index, 1);\n this.subscribers[handlerName] = subscribers;\n }\n\n if (subscribers.length <= 0) {\n // 监听者数量小于等于0,发送移除注册事件,通知native\n this.dealPostMessage({\n method: handlerName,\n type: EventType.UNREGISTER,\n });\n }\n };\n}\n\nconst bridge = new Bridge();\nexport default bridge;\n","// interface SytWindow extends Window {\n// ReactNativeWebView: any;\n// }\n// export declare var window: SytWindow;\n\nexport const userAgent = window.navigator.userAgent;\nexport const isSfAppIOS = () => !!userAgent.includes(\"SFEXPRESSAPP-iOS-ML\");\nexport const isSfAppAndroid = () =>\n !!userAgent.includes(\"SFEXPRESSAPP-Android-ML\");\n","import { AxiosTransformer } from \"./types\";\n\nexport const transform = (\n data: any,\n headers: any,\n fns?: AxiosTransformer | AxiosTransformer[]\n): any => {\n if (!fns) return data;\n\n if (!Array.isArray(fns)) {\n fns = [fns];\n }\n\n fns.forEach((fn) => {\n data = fn(data, headers);\n });\n\n return data;\n};\n","import { RequestConfig } from \"./types\";\n\nexport const extend = <T, U>(to: T, from: U): T & U => {\n for (const key in from) {\n (to as T & U)[key] = from[key] as any;\n }\n return to as T & U;\n};\n\nconst strats = Object.create(null);\n\nexport const mergeConfig = (config1: any, config2?: any): RequestConfig => {\n if (!config2) {\n config2 = {};\n }\n\n const config = Object.create(null);\n\n function defaultStrat(val1: any, val2: any): any {\n return typeof val2 !== \"undefined\" ? val2 : val1;\n }\n\n for (const key in config2) {\n if (Object.prototype.hasOwnProperty.call(config2, key)) {\n mergeField(key);\n }\n }\n\n for (const key in config1) {\n if (!Object.prototype.hasOwnProperty.call(config2, key)) {\n mergeField(key);\n }\n }\n\n function mergeField(key: string): void {\n const strat = strats[key] || defaultStrat;\n config[key] = strat(config1[key], config2![key]);\n }\n\n return config;\n};\n","import { RequestConfig } from \"./types\";\n\nconst defaults: RequestConfig = {\n method: \"get\",\n timeout: 0,\n headers: {\n common: {\n Accept: \"application/json, text/plain, */*\",\n },\n },\n};\n\nexport default defaults;\n","import bridge, { IError } from \"../basic/bridge\";\nimport { IPostSFParams } from \"./eventsName\";\n\nexport interface BleManagerInitParams {\n /** 业务场景 */\n businessScene: string;\n /** 打印指令接口参数 */\n printCommandOptions: IPrintOptions;\n /** 业务参数 */\n businessParams: {\n /** 订单号 */\n appointmentNo: string;\n };\n}\n\n// 打印的相关参数\nexport interface IPrintOptions {\n /** 模板编码 */\n templateCode?: string;\n /** 传固定值:2.0 */\n version?: string;\n /** 模板业务字段 */\n documents?: Array<IDocument>;\n /** 模板扩展字段 */\n extJson?: IExtJson;\n}\n\nexport interface IDocument {\n /** 主运单号 */\n masterWaybillNo?: string;\n /** 自定义区域备注 */\n remark?: string;\n /** 1:收方电话后6位 2:寄方电话后6位 */\n waybillNoCheckType?: string;\n /** 运单号合法校验具体值 比如:“123456”,与 waybillNoCheckType 参数对应 */\n waybillNoCheckValue?: string;\n}\n\nexport interface IExtJson {\n /** 订单所属渠道。传固定值:cx */\n channel?: string;\n /** 自定义脱敏标识。传固定值:111100(即脱敏收寄件人姓名、地址) */\n encryptFlag?: string;\n /** 指令集类型,cpcl(便携打印机)或者zpl,默认cpcl。传固定值:cpcl */\n commandType?: string;\n /** 图片转换文本。传固定值:true */\n imageConvertText?: boolean;\n}\n\nexport class SFAppBle {\n /**\n * 进行蓝牙打印运单\n */\n blePrint(params: BleManagerInitParams): Promise<void> {\n const appFunc: IPostSFParams = {\n method: \"blePrint\",\n params: params,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","import { AppCommon } from \"../basic/appCommon\";\nimport bridge, { IError } from \"../basic/bridge\";\nimport { IPostSFParams } from \"./eventsName\";\n\ninterface IGetReducerDataParams {\n reducerName: string;\n attributes: string[];\n}\n\ninterface ISyncCookieParams {\n data: string;\n}\n\ninterface IGetLocalSourceParams {\n fileName: string;\n}\n\ninterface IGetLocalSourceResponse {\n sourcePath?: string;\n}\n\ninterface ICodeAndMessageResponse {\n code?: string;\n message?: string;\n}\n\ninterface IOpenWXMiniProgramReq {\n appId: string;\n path?: string;\n type?: number;\n}\n\ninterface IOnAliIdVerifyReq {\n /** 顺丰微服务ID */\n appId: string;\n /** 身份信息密文 */\n sign: string;\n}\n\ninterface IOpenAliMiniProgramReq {\n appId: string;\n name: string;\n page: string;\n query: string;\n returnBackSchema?: string;\n}\n\nexport class SFAppCommon extends AppCommon {\n getIMEICode(): Promise<string> {\n const appFunc: IPostSFParams = {\n method: \"startGetIMEICode\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getPushAuthStatus(): Promise<boolean> {\n const appFunc: IPostSFParams = {\n method: \"getPushAuthStatus\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n setPushState(): Promise<ICodeAndMessageResponse> {\n const appFunc: IPostSFParams = {\n method: \"setStateToPush\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n setPushStateNoTimeLimit(): Promise<ICodeAndMessageResponse> {\n const appFunc: IPostSFParams = {\n method: \"setStateToPushNoTimeLimit\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getLocalSource(\n params: IGetLocalSourceParams\n ): Promise<IGetLocalSourceResponse> {\n const appFunc: IPostSFParams = {\n method: \"getLocalWebSource\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getReducerData(params: IGetReducerDataParams): Promise<any> {\n const appFunc: IPostSFParams = {\n method: \"getReducerData\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getDeviceId(): Promise<string> {\n const appFunc: IPostSFParams = {\n method: \"getDeviceId\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getDuDeviceId(): Promise<string> {\n if (window.curAppVersion < 1095400) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.54或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostSFParams = {\n method: \"getDuDeviceId\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n syncCookies(params: ISyncCookieParams) {\n const appFunc: IPostSFParams = {\n method: \"syncCookie\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 打开微信小程序\n * @param params\n * @returns\n */\n openWXMiniProgram(params: IOpenWXMiniProgramReq): Promise<string> {\n if (window.curAppVersion < 1094100) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.41或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostSFParams = {\n method: \"openWXMiniProgram\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 支付宝实名认证\n * @param params\n * @returns\n */\n onAliIdVerify(params: IOnAliIdVerifyReq): Promise<string> {\n if (window.curAppVersion < 1094200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.42或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostSFParams = {\n method: \"onAliIdVerify\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n openAliMiniProgram(params: IOpenAliMiniProgramReq): Promise<string> {\n if (window.curAppVersion < 1097200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.72或以上版本\",\n };\n return Promise.reject(error);\n }\n\n const appFunc: IPostSFParams = {\n method: \"openAliMiniProgram\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","import bridge, { IError } from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\ninterface IOpenCodeScanParams {\n isAPPHandle?: boolean;\n}\n\ninterface IWXSendMessage {\n title?: string; // 标题\n description?: string; // 描述内容\n thumbData?: string; // 缩略图数据 base64字符串\n}\n\ninterface IWXSendImageMessage extends IWXSendMessage {\n mediaObject: string; // 图片 base64字符串\n}\n\ninterface IWXSendMusicMessage extends IWXSendMessage {\n musicUrl: string; // 音频网页的URL地址\n musicLowBandUrl?: string; // 供低带宽环境下使用的音频网页URL地址\n musicDataUrl?: string; // 音频数据的URL地址\n musicLowBandDataUrl?: string; // 供低带宽环境下使用的音频数据URL地址\n}\n\ninterface IWXSendVideoMessage extends IWXSendMessage {\n videoUrl: string; // 视频链接\n videoLowBandUrl?: string; // 供低带宽的环境下使用的视频链接\n}\n\ninterface IWXSendWebpageMessage extends IWXSendMessage {\n webpageUrl: string; // html链接\n}\n\ninterface IWXSendMiniProgramMessage extends IWXSendWebpageMessage {\n userName: string; // 小程序的原始id\n path: string; // 小程序的path\n withShareTicket: boolean; // 是否使用带shareTicket的分享\n miniProgramType?: 0 | 1 | 2; // 小程序的类型,默认正式版 0 正式版 1 开发版 2 体验版\n hdImageData?: string; // 小程序缩略图 base64字符串\n}\n\ninterface IShareMsgToWXParams {\n /**\n * 微信分享类型 0 文本类型,1 图片类型, 2 音乐类型, 3 视频类型, 4 网页类型, 5 小程序类型\n */\n type: 0 | 1 | 2 | 3 | 4 | 5;\n /**\n * 分享目标 0, 聊天界面 1, 朋友圈 2 收藏 3, 指定联系人\n */\n scene: 0 | 1 | 2 | 3;\n message:\n | string\n | IWXSendImageMessage\n | IWXSendMusicMessage\n | IWXSendVideoMessage\n | IWXSendWebpageMessage\n | IWXSendMiniProgramMessage;\n}\n\ninterface IShareMsgToWXResponse {\n respCode?: number;\n}\n\ninterface IGetLocationParams {\n reGeocode: boolean;\n networkState: boolean;\n}\n\ninterface IGetAppVersionResponse {\n clientVersion?: string;\n clientVersionCode?: number;\n}\n\ninterface IOnSelectContactResponse {\n contacts?: any[];\n errCode?: string;\n errMessage?: string;\n}\n\ninterface ISaveImageToLocalParams {\n base64: string;\n}\n\ninterface ISaveImageToLocalResponse {\n errCode?: string;\n errMessage?: string;\n}\n\nexport interface ISFAddressParams {\n encryptKey: string;\n /** 需要返回的地址数据的字段,可为空 */\n returnValue?: string[];\n}\n\ninterface IPasteStringParams {\n content: string;\n}\n\ninterface ICheckPermissionReq {\n permissionType:\n | \"user\"\n | \"device\"\n | \"location\"\n | \"camera\"\n | \"photo\"\n | \"contacts\"\n | \"storage\"\n | \"callPhone\"\n | \"microphone\";\n}\n\n\ninterface ICalendarEventReq {\n /**\n * Id of edited event. For edit、delete\n */\n eventId?: string;\n /**\n * 1- 新增,2-修改 , 3 查看 或 删除,开启系统日历事件页面,由用户决定具体操作\n */\n actionType?: number;\n\n /**\n * 日历事件参数,如果是添加,该参数必传\n */\n eventParams?: ICalendarEventParams\n}\n\n\ninterface ICalendarEventParams {\n title?: string;\n /**\n * in UTC, format: 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n */\n startDate?: string;\n /**\n * in UTC, format: 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n */\n endDate?: string;\n location?: string;\n allDay?: boolean;\n /**\n * iOS only\n */\n url?: string;\n /**\n * The notes (iOS) or description (Android) associated with the event.\n */\n notes?: string;\n}\n\n\n\ninterface ICalendarEventResp {\n // 0 成功, -1 失败, -2 取消操作\n result: number;\n calendarItemId: string;\n eventId: string;\n}\n\ninterface IPhotoReq {\n /** 图片裁剪 */\n edit: boolean;\n /** 展示无权限提示框 */\n showPermissionAlert: boolean;\n}\ninterface IPhotoResponse {\n /** 图片宽度 */\n width: number;\n /** 图片高度 */\n height: number;\n /** 图片大小 */\n size: number;\n /** 图片base64 数据 */\n data: string;\n}\n\ninterface IGetAddedWidgetsResponse {\n /** 设备ID */\n deviceId: number;\n /** 用户ID */\n memberId: number;\n /** 组件列表 */\n widgets: String[];\n}\n\ninterface IOpenMapAppLocation {\n lat: string;\n lng: string;\n address?: string;\n type?: string;\n}\n\nexport class AppCommon {\n constructor() {\n this.getAppVersion()\n .then((res) => {\n if (res && res.clientVersionCode) {\n try {\n window.curAppVersion = Number(res.clientVersionCode);\n } catch (error) {}\n }\n })\n .catch((err) => {});\n }\n\n openScan(params: IOpenCodeScanParams): Promise<string> {\n const appFunc: IPostBasicParams = {\n method: \"startScanCode\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n shareMsgToWXAPI(params: IShareMsgToWXParams): Promise<IShareMsgToWXResponse> {\n const appFunc: IPostBasicParams = {\n method: \"shareMessageToWXReq\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getLocation(params: IGetLocationParams): Promise<any> {\n const appFunc: IPostBasicParams = {\n method: \"currentLocation\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getAppVersion(): Promise<IGetAppVersionResponse> {\n const appFunc: IPostBasicParams = {\n method: \"appVersion\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n onSelectContacts(): Promise<IOnSelectContactResponse> {\n const appFunc: IPostBasicParams = {\n method: \"selectContacts\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n onSaveImageToLocal(\n params: ISaveImageToLocalParams\n ): Promise<ISaveImageToLocalResponse> {\n const appFunc: IPostBasicParams = {\n method: \"saveImageToLocal\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getEnvironment(): Promise<string> {\n const appFunc: IPostBasicParams = {\n method: \"getEnvironment\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取顺丰地址列表\n * @returns 返回为json string加密的字符串,需密钥解密\n */\n getSFAddress(params: ISFAddressParams): Promise<string> {\n const appFunc: IPostBasicParams = {\n method: \"selectAddress\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 复制字符串\n */\n pasteString(params: IPasteStringParams): Promise<boolean> {\n const appFunc: IPostBasicParams = {\n method: \"pasteString\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n getDeviceModel(): Promise<string> {\n if (window.curAppVersion < 1094200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.42或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"getDeviceModel\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 检查授权状态\n * @param params\n * @returns\n */\n checkPermission(params: ICheckPermissionReq): Promise<string> {\n if (window.curAppVersion < 1094200) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.42或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"checkPermission\",\n params,\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 拍照\n */\n takePhoto(params: IPhotoReq): Promise<IPhotoResponse> {\n if (window.curAppVersion < 1094800) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.48或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"takePhoto\",\n params,\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 从相册中选择\n */\n selectPhoto(params: IPhotoReq): Promise<IPhotoResponse> {\n if (window.curAppVersion < 1094800) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.48或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"selectPhoto\",\n params,\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取组件信息\n */\n getAddedWidgets(): Promise<IGetAddedWidgetsResponse> {\n if (window.curAppVersion < 1094700) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.47或以上版本\",\n };\n return Promise.reject(error);\n }\n const appFunc: IPostBasicParams = {\n method: \"getAddedWidgets\",\n };\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 跳转到 应用评价页面\n */\n goToAppMarketEvaluation(): Promise<boolean> {\n if (window.curAppVersion < 1095000) {\n const error: IError = {\n errCode: \"10\",\n errMessage: \"当前APP版本不支持,请使用9.50或以上版本\",\n };\n return Promise.reject(error);\n }\n\n const appFunc: IPostBasicParams = {\n method: \"goToAppMarketEvaluation\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 打开地图app\n * @param location 目标地址,请使用gcj02\n * @returns\n */\n openMapApps(location: IOpenMapAppLocation): Promise<void> {\n if (window.curAppVersion < 1096200) {\n const error: IError = {\n errCode: \"10\",\n errMessage:\n \"当前APP版本不支持,请使用9.62或以上版本\" + window.curAppVersion,\n };\n return Promise.reject(error);\n }\n\n const appFunc: IPostBasicParams = {\n method: \"openMapApps\",\n params: location,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 添加、修改、删除 日历中的事件\n */\n calendarEvent(params: ICalendarEventReq): Promise<ICalendarEventResp> {\n\n const appFunc: IPostBasicParams = {\n method: \"calendarEvent\",\n params\n };\n return bridge.postMessage(appFunc);\n }\n\n}\n","import { AppNavigator } from \"../basic/appNavigator\";\nimport bridge from \"../basic/bridge\";\nimport { IPostSFParams } from \"./eventsName\";\n\ninterface ISetNavigatorCanBackParams {\n canBack?: boolean;\n}\n\ninterface NavigationParams {\n [key: string]: any;\n}\n\ninterface INavigateParams {\n routeName: string;\n params?: NavigationParams;\n needLogin?: boolean; // 跳转的页面是否需要登录 默认:false\n oneAndOnlyPage?: boolean; // 应用是否只存在唯一该页面 默认:true\n replaceCurrentPage?: boolean; // 是否将当前页面移除并进行跳转目标页面 默认:false\n allowMultipleJumps?: boolean; // 是否允许多次跳转 默认:false\n shouldReload?: boolean; // 如果跳转的页面为已有的页面,是否需要重新加载 默认:false\n type?: any; // 用于清空外部非法变量使用,该值没有任何作用,不要进行设置\n userRegisterSourceChannelName?: string; //用户注册来源渠道名称\n}\n\nexport class SFAppNavigator extends AppNavigator {\n /**\n * 设置返回按钮是否可以返回\n * @param canBack\n */\n setNavigatorCanBack(canBack: boolean) {\n const data: ISetNavigatorCanBackParams = {\n canBack,\n };\n\n const appFunc: IPostSFParams = {\n method: \"setCanBack\",\n params: data,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 页面跳转方法\n * @param params\n */\n navigate(params: INavigateParams) {\n const appFunc: IPostSFParams = {\n method: \"navigate\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n}\n","import bridge, { IPostParams, IRequestCompletion } from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\ninterface ILoadUrlParams {\n /** 页面名称/主标题 - 通用场景 */\n title: string;\n /** 副标题 - 通用场景 */\n subTitle?: string;\n /** 标签 - 通用场景 */\n tagTitle?: string;\n /** H5 跳转信息 - 通用场景 */\n source?: {\n /** H5 URL信息 - 通用场景 */\n uri?: string;\n /** 请求头对象 */\n headers?: Object;\n };\n miniapp?: any;\n /** 域名(用做区分签名文件,可为空) - 通用H5鉴权场景 */\n domain?: string;\n /** 是否需要签名(签名信息,例:mobile=xxxx&memNo=xxxx&memberId=xxxx)- 通用H5鉴权场景 */\n needSign?: boolean;\n /** 是否一定需要用户信息(值为true时,强制needLogin为true)- 快捷入口场景 */\n mustUserInfo?: boolean;\n /** 跳转名称 - 下单快捷入口场景 */\n jumpName?: string;\n /** 是否EnCode 编码(默认false) - 通用H5鉴权场景 */\n isEncode?: boolean;\n /** 扩展签名字段 (会请求CCMAS后台接口对参数进行签名,然后将签名之后的字符串追加到url后面 例:&channelCode=SFAPP&subChnlCode=appwcfuli)- 通用H5鉴权场景 */\n extendSign?: string;\n /** 扩展不需要签名字段 (直接追加到URL后面,例:&channelCode=SFAPP&subChnlCode=appwcfuli)- 通用H5鉴权场景 */\n extendNoSign?: string;\n /** 渠道标识 - 礼品卡系统鉴权场景 */\n channelSource?: string;\n /** 目标页面标记 - 礼品卡系统鉴权场景 */\n toPage?: string;\n /** 是否需要请求时间 1需要,0不需要 - 通用H5鉴权场景 */\n needReqTime?: string;\n /** 是否自动调用 RN 页面的默认 Init 方法 */\n shouldInit?: boolean;\n /** 插入的js */\n injectedJavaScript?: string;\n}\n\ninterface INavigatorStyle {\n titleStyle?: any;\n leftTextStyle?: any;\n leftImageColor?: string;\n rightTextStyle?: any;\n rightImageColor?: string;\n barImageStyle?: any;\n barImageUri?: string;\n style?: any;\n fontColor?: string;\n title?: string;\n hidden?: boolean;\n barStyle?: any;\n contentMode?: \"fullScreen\" | \"stateBar\" | \"navigationBar\" | number;\n themeMode?: \"light\" | \"dark\";\n}\n\ninterface ISetNavigatorTitleParams {\n title?: string;\n}\n\ninterface INavigatorFrameResponse {\n statusbar: { x: number; y: number; width: number; height: number };\n navigationBar: { x: number; y: number; width: number; height: number };\n}\n\nexport class AppNavigator {\n /**\n * 关闭当前h5应用\n * 对应app9.38版本升级为携带参数\n */\n closeH5App(params?: any) {\n const appFunc: IPostBasicParams = {\n method: \"backToBefore\",\n params: params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 设置导航栏标题\n * @param params\n */\n setNavigatorTitle(params: ISetNavigatorTitleParams) {\n const appFunc: IPostBasicParams = {\n method: \"setTitle\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 设置导航栏样式\n * @param params\n */\n setNavigatorStyle(params: INavigatorStyle) {\n const appFunc: IPostBasicParams = {\n method: \"setStyle\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 获取导航页和状态栏的frame\n */\n getNavigatorFrame(): Promise<INavigatorFrameResponse> {\n const appFunc: IPostBasicParams = {\n method: \"getNavigationFrame\",\n };\n\n return bridge.postMessage(appFunc);\n }\n\n loadUrl(params: ILoadUrlParams) {\n const appFunc: IPostBasicParams = {\n method: \"loadUrl\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 返回上一页\n */\n onGoBack() {\n const appFunc: IPostBasicParams = {\n method: \"goBack\",\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n /**\n * 监听返回事件\n * @param callback\n */\n onBackPressedListener(callback: (data: any) => boolean) {\n bridge.subscribeEvent(\n \"onBackPressed\",\n (params: any, responseCallback: (result: any) => void) => {\n const res = callback(params);\n responseCallback(res);\n }\n );\n }\n}\n","import { AppPay, IPayResult } from \"../basic/appPay\";\nimport bridge from \"../basic/bridge\";\nimport { IPostSFParams } from \"./eventsName\";\n\ninterface IPayBySVIPParams {\n reqId: string;\n amt: string;\n requestIp: string;\n businessCode: string;\n mchNo: string;\n goodsName: string;\n goodsDesc: string;\n signedData: string;\n}\n\ninterface IPayBySDKParams {\n amt: string;\n mchNo: string;\n mchOrderNo: string;\n payURL: string;\n signData: string;\n signType?: string;\n requestTime: string;\n orderBeginTime: string;\n goodsName: string;\n goodsDesc: string;\n businessCode: string;\n payMethod: number;\n goodsTag?: string;\n}\n\ninterface IWxAutoPaySignParams {\n entrustId: string;\n}\n\ninterface IWxAutoPaySignResponse {\n respCode: number;\n}\n\ninterface IOnDigiCnyPayResultParams {\n status:\n | 0 // 支付失败\n | 1 // 支付成功\n | 2 // 支付中\n | 3; // 订单关闭\n}\n\ninterface IPayByWXMiniProgram {\n payToken: string;\n}\n\nexport interface IPayByWXMiniProgramResult {\n result: boolean;\n}\n\nclass PayParams {\n amt: string = \"0\"; // 金额\n payMethod: number = 1; // 1.微信 2.支付宝\n mchNo: string = \"\"; // 商户号\n mchOrderNo: string = \"\"; // 商户订单号\n payURL: string = \"\"; // 支付平台接收支付通知的地址\n signData: string = \"\"; // 签名\n signType?: string = \"\"; // 签名加密类型\n requestTime: string = \"\"; // 发起请求时间\n orderBeginTime: string = \"\"; // 订单开始时间\n goodsName: string = \"\"; // 物品名称\n goodsDesc: string = \"\"; // 物品描述\n businessCode: string = \"0000\"; // 支付业务类型 0000: 大网运费支付 0007:同城运费支付\n goodsTag?: string; // 微信代金券标识\n specialExt?: any; //扩展字段\n}\n\ninterface IPayResponse {\n result: IPayResult;\n payParams?: PayParams;\n}\n\ninterface IPayWaybillByPayIdParams {\n payId: string;\n}\n\ninterface IPayBySfParams {\n orderStr: string;\n}\n\ninterface IPayBySfResponse {\n code?: number;\n message?: string;\n}\n\nexport class SFAppPay extends AppPay {\n payBySVIP(params: IPayBySVIPParams): Promise<IPayResponse> {\n const appFunc: IPostSFParams = {\n method: \"payBySVIP\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n payBySDK(params: IPayBySDKParams): Promise<IPayResult> {\n const appFunc: IPostSFParams = {\n method: \"payBySDK\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n payBySf(params: IPayBySfParams): Promise<IPayBySfResponse> {\n const appFunc: IPostSFParams = {\n method: \"payBySf\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n wxAutoPaySignReq(\n params: IWxAutoPaySignParams\n ): Promise<IWxAutoPaySignResponse> {\n const appFunc: IPostSFParams = {\n method: \"wxAutoPaySignReq\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n onDigiCnyPayResult(params: IOnDigiCnyPayResultParams) {\n const appFunc: IPostSFParams = {\n method: \"digiCnyPayResult\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n payWaybillByPayId(params: IPayWaybillByPayIdParams) {\n const appFunc: IPostSFParams = {\n method: \"payWaybillByPayId\",\n params,\n };\n\n bridge.postMessage(appFunc).then().catch();\n }\n\n payByWXMiniProgram(\n params: IPayByWXMiniProgram\n ): Promise<IPayByWXMiniProgramResult> {\n const appFunc: IPostSFParams = {\n method: \"payByWXMiniProgram\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","import bridge from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\ninterface IPayByWeChatParams {\n partnerId: string; //商户id\n prepayId: string; // 预支付id\n nonceStr: string; //随机字符串\n timeStamp: string; //时间戳\n sign: string; //签名\n package: string; //\n}\n\ninterface IPayByAliParams {\n orderStr: string;\n}\n\nexport interface INativePayResult {\n result: IPayResult;\n}\n\nexport interface IPayResult {\n channelType: string; // 支付方式\n status: string | number;\n message: string;\n channelResult: object;\n}\n\nexport class AppPay {\n payByWeChat(params: IPayByWeChatParams): Promise<INativePayResult> {\n const appFunc: IPostBasicParams = {\n method: \"payByWeChat\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n payByAli(params: IPayByAliParams): Promise<INativePayResult> {\n const appFunc: IPostBasicParams = {\n method: \"payByAli\",\n params,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","import { AppUser } from \"../basic/appUser\";\n\nexport class SFAppUser extends AppUser {}\n","import bridge from \"./bridge\";\nimport { IPostBasicParams } from \"./eventsName\";\n\nexport interface IAuthorizeParams {\n appid: string;\n scope: string;\n reserved: string;\n}\n\nexport interface IAuthorizeResponse {\n errorCode: string;\n code: string;\n reserved: string;\n}\n\nexport interface IGetUserInfoParams {\n needLogin?: boolean;\n domain?: string;\n}\n\nexport interface IGetUserBaseInfoParams {\n needLogin?: boolean;\n}\n\nexport interface IGetUserBaseInfoResponse {\n nickName?: string;\n birthday?: string;\n sex?: string;\n}\n\nexport interface IGetUserAvatarParams {\n needLogin?: boolean;\n}\n\nexport class AppUser {\n /**\n * 调用OAuth2.0 授权接口\n * @param params\n * @returns\n */\n authorize(params: IAuthorizeParams): Promise<IAuthorizeResponse> {\n const appFunc: IPostBasicParams = {\n method: \"authorize\",\n params: params,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 老版本鉴权,获取用户数据,仅内部使用\n * @param params\n * @returns\n */\n getUserInfo(params: IGetUserInfoParams): Promise<string> {\n const data: IGetUserInfoParams = {\n needLogin: params.needLogin || true,\n domain: params.domain,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"getUserInfo\",\n params: data,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取用户基本信息\n * @param params\n * @returns\n */\n getUserBaseInfo(\n params: IGetUserBaseInfoParams\n ): Promise<IGetUserBaseInfoResponse> {\n const data: IGetUserBaseInfoParams = {\n needLogin: params.needLogin || true,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"getUserBaseInfo\",\n params: data,\n };\n\n return bridge.postMessage(appFunc);\n }\n\n /**\n * 获取用户头像\n * @param params\n * @returns\n */\n getUserAvatar(params: IGetUserAvatarParams): Promise<string> {\n const data: IGetUserAvatarParams = {\n needLogin: params.needLogin || true,\n };\n\n const appFunc: IPostBasicParams = {\n method: \"getUserAvatar\",\n params: data,\n };\n\n return bridge.postMessage(appFunc);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(0);\n"],"sourceRoot":""}