UNPKG

house-middleware-sdk

Version:

58 hosue rn native sdk

101 lines (88 loc) 3.1 kB
/* * @method jump 跳转 安居客的跳转协议目前只能是明文的 如果加密或转义应该在跳转中心统一处理 否则需要在每一个目标页面进行转义成本高 切不安全 * @param params map */ export function jump(protocol) { if (!protocol) { console.error("protocol不能为空"); return; } require("../utils/findImpl").default( () => jumpWbImpl(protocol), () => jumpAjkImpl(protocol), () => jumpYdjjrImpl(protocol), () => jumpWbtzImpl(protocol) ); } function jumpWbImpl(protocol) { if (typeof protocol !== "string") { console.error("protocol应该类似 'wbmain://jump/RN/RN?params=...' "); return; } require('react-native').NativeModules.WBPageTransferDispatcher.dispatchTransferActionWithAction(protocol); } function jumpAjkImpl(protocol) { if (typeof protocol !== "string") { console.error("protocol应该类似 'openanjuke://app.anjuke.com/m/{module}/{page}?{key}={value}' "); return; } require("ajkapp").jump(protocol); } function jumpYdjjrImpl(protocol) { if (typeof protocol !== "string") { console.error("protocol应该类似 'openbroker2://vip.anjuke.com/newbroker/XXXX' "); return; } require('react-native').NativeModules.BrokerApp?.navigator(protocol); } //TODO:{58同镇 跳转协议 jump...} function jumpWbtzImpl(protocol) { jumpWbImpl(protocol); } export function jumpWithParams(group, page, params) { if (!group) { console.error("group不能为空"); return; } if (!page) { console.error("page不能为空"); return; } if (!params) { console.error("params不能为空"); return; } require("../utils/findImpl").default( () => jumpToRNWithParamsWbImpl(group, page, params), () => jumpToRNWithParamsAjkImpl(group, page, params), () => jumpToRnWithParamsYdjjrImpl(group, page, params), () => jumpToRNWithParamsWbtzImpl(group, page, params) ); } function handleParams(params) { if (!params || params === {}) { params = {}; } if (!params.bundleid || params.bundleid === '') { params.bundleid = 'holder'; } if (!params.params) { params.params = { hideBar: 1 }; } else { params.params.hideBar = 1; } return params; } function jumpToRNWithParamsWbImpl(group, page, params) { jump('wbmain://jump/' + group + '/' + page + '?params=' + encodeURIComponent(JSON.stringify(handleParams(params)))); } function jumpToRNWithParamsAjkImpl(group, page, params) { jump('openanjuke://jump/' + group + '/' + page + '?params=' + encodeURIComponent(JSON.stringify(handleParams(params)))); } function jumpToRnWithParamsYdjjrImpl(group, page, params) { console.error('只支持jump,具体的跳转页面,跳转参数,可参考移动经纪人跳转协议'); } //TODO:{58同镇 跳转协议 jumpToWithParams...} function jumpToRNWithParamsWbtzImpl(group, page, params) { jumpToRNWithParamsWbImpl(group, page, params) }