'use strict'; import { Rpc } from 'web/service/rpc'; const rpc = new Rpc(); var pageResolves = []; var isReady = false; // 环境判断 export function isInWebview() { try{ return !window.parent['SConfig'] && !window.parent['origin']; }catch(err){ return true; } } // webview ready方法 export function ready(option) { option = option || {}; option.title = option.title || document.title; return rpc.createTask({ type:'ready', params: option }).then(function () { for (var i = 0, n = pageResolves.length; i < n; i++) { var resolve = pageResolves[i]; resolve(); } pageResolves = []; isReady = true; }); } // 页面配置相关 function Page() {} Page.prototype.set = function (data) { if(isReady){ // 已ready则直接发送 return rpc.sendMessage('page', data); }else{ return new Promise(function (resolve) { pageResolves.push(resolve); }).then(function () { return rpc.sendMessage('page', data); }); } } Page.prototype.setTitle = function (title) { return this.set({ title:title }); } Page.prototype.setShare = function (wxData) { return this.set({ wxData:wxData }); } export const page = new Page(); // 消息组件 function Message() {} Message.prototype.send = function (data) { return rpc.runMethod('message.send',data); } export const message = new Message(); // 社交组件 function Social() { } Social.prototype.open = function (wxData) { return rpc.runMethod('social.open',wxData); } export const social = new Social(); // 上传组件 function Upload() {} Upload.prototype.image = function (option) { return rpc.runMethod('upload.image2',option); } export const upload = new Upload(); // 弹窗组件 function Modal() {} Modal.prototype.tip = function (option) { return rpc.runMethod('modal.tip2',option); } Modal.prototype.alert = function (option) { return rpc.runMethod('modal.alert2',option); } Modal.prototype.confirm = function (option) { return rpc.runMethod('modal.confirm2',option); } export const modal = new Modal(); // 额外弹窗组件 function PageModal() {} PageModal.prototype.risk = function (option) { return rpc.runMethod('pageModal.risk2',option); } PageModal.prototype.uploadProof = function (option) { return rpc.runMethod('pageModal.uploadProof2',option); } export const pageModal = new PageModal(); // actionSheet组件 function ActionSheet() {} ActionSheet.prototype.show = function (option) { return rpc.runMethod('actionSheet.show',option); } export const actionSheet = new ActionSheet(); // loading组件 function Loading() {} Loading.prototype.show = function (text, duration, opts) { return rpc.runMethod('loading.show',text,duration, opts); } Loading.prototype.close = function () { return rpc.runMethod('loading.close'); } export const loading = new Loading(); // 相机&画册 function Camera() {} Camera.prototype.album = function (options) { return rpc.runMethod('camera.album',options); } Camera.prototype.photo = function (width, height) { return rpc.runMethod('camera.photo',width, height); } export const camera = new Camera(); // 自定义键盘 function Keyboards() {} Keyboards.prototype.number = function (option) { return rpc.runMethod('keyboards.number2',option); } export const keyboards = new Keyboards(); // 原始键盘 function Keyboard() {} Keyboard.prototype.close = function () { return rpc.runMethod('keyboard.close'); } export const keyboard = new Keyboard(); // 跳转 function History() {} History.prototype.go = function (url,toParams,options) { return rpc.runMethodWithoutReturn('history.go',url,toParams,options); } History.prototype.goBack = function (url,toParams,options) { return rpc.runMethodWithoutReturn('history.goBack',url,toParams,options); } export const history = new History(); // pdf阅读 function Pdf() {} Pdf.prototype.open = function (url,title) { return rpc.runMethod('pdf.open',url,title); } Pdf.prototype.openContract = function (productId) { return rpc.runMethod('pdf.openContract',productId); } Pdf.prototype.openRisk = function (productId) { return rpc.runMethod('pdf.openRisk',productId); } export const pdf = new Pdf();