house-middleware-sdk
Version:
58 hosue rn native sdk
101 lines (88 loc) • 3.1 kB
JavaScript
/*
* @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)
}