house-middleware-sdk
Version:
58 hosue rn native sdk
178 lines (161 loc) • 4.46 kB
JavaScript
import WBAPP from '@w/wbapp';
export function alert(params, callBack) {
if (!params) {
console.warn('参数不能为空');
return;
}
require("../utils/findImpl")
.default(
() => wbAlertDialog(params, callBack),
() => { },
() => ydjjrAlertDialog(params, callBack),
() => wbtzAlertDialog(params, callback)
);
}
function wbAlertDialog(params, callBack) {
WBAPP.alert(params, (e) => {
callBack && callBack(e);
});
}
function ydjjrAlertDialog(params, callBack) {
let param = {
title: params.title,
message: params.message,
buttons: params.btn ? [params.btn] : []
}
NativeModules.BrokerDialog.show(param, (index) => {
callBack && callBack(index);
});
}
function wbtzAlertDialog(params, callback) {
//同镇与同城实现已统一
wbAlertDialog(params, callback);
}
export function confirm(params, callBack) {
if (!params) {
console.warn('参数不能为空');
return;
}
require("../utils/findImpl")
.default(
() => wbConfirmDialog(params, callBack),
() => { },
() => ydjjrConfirmDialog(params, callBack),
() => wbtzConfirmDialog(params, callBack)
);
}
function wbConfirmDialog(params, callBack) {
WBAPP.confirm(params, (e) => {
callBack && callBack(e);
});
}
function ydjjrConfirmDialog(params, callBack) {
const para = {
title: params.title,
message: params.message,
buttons: [params.confirmBtn, params.cancelBtn]
}
NativeModules.BrokerDialog.show(para, (index) => {
callBack && callBack(index);
});
}
function wbtzConfirmDialog(params, callBack) {
//同镇与同城实现已统一
WBAPP.confirm(params, (e) => {
callBack && callBack(e);
});
}
//带图片 和 确认按钮的 Dialog
export function confirmPicShow(params, callBack) {
if (!params) {
console.warn('参数不能为空');
return;
}
require("../utils/findImpl")
.default(
() => wbConfirmPicDialog(params, callBack),
() => { },
() => { },
() => wbtzConfirmPicDialog(params, callBack)
);
}
function wbConfirmPicDialog(params, callBack){
confirmPic?.show(params, (e) => {
callBack && callBack(e);
});
}
function wbtzConfirmPicDialog(params, callBack){
wbConfirmPicDialog(params, callBack)
}
//带图片 和 确认按钮的 Dialog
export function confirmPicDismiss() {
require("../utils/findImpl")
.default(
() => wbConfirmPicDismissDialog(),
() => { },
() => { },
() => wbtzConfirmPicDismissDialog()
);
}
function wbConfirmPicDismissDialog(){
confirmPic?.dismiss();
}
function wbtzConfirmPicDismissDialog(){
wbConfirmPicDismissDialog()
}
let lastCallback, subscription
let confirmPic = {
show: function(param, callback) {
// 类型检查
const error = require('../utils/checker')?.default(
arguments,
[
{
title: 's',
content: 's',
negativeButtonTxt: 's',
positiveButtonTxt: 's',
// imageUrl: 's'
},
'f'
],
'dialog.confirmPic.show'
)
// 线上环境报错不调起 Native 的 API
if (error === 'error') {
return error
}
// let {
// title = '',
// content = '',
// negativeButtonTxt = '取消',
// positiveButtonTxt = '确定'
// } = param
// 如果是不同回调,先取消上次订阅,再重新注册。
if (callback !== lastCallback) {
subscription && subscription.remove()
//callback "1": leftBtn "0": rightBtn
subscription = require('react-native').DeviceEventEmitter.addListener(
'RCTDidButtonSelectedEvent',
callback
)
}
// console.error("hahhahahhah")
// if (Platform.OS === 'ios') {
// // ios 默认图片地址为 shield
// RCTImageDialog?.show?.(
// 'shield',
// title,
// content,
// negativeButtonTxt,
// positiveButtonTxt
// )
// } else {
param.imageUrl = ''
require('react-native').NativeModules?.WBTitleImageDialog?.show?.(param)
// }
},
dismiss: function() {
require('react-native').NativeModules?.WBTitleImageDialog?.dismiss?.()
}
}