npm package: @kaishi/bridge
Description: 提供与原生应用通信的桥接功能，封装了常用的原生交互方法。
Latest version: 0.0.4

# @kaishi/bridge

提供与原生应用通信的桥接功能，封装了常用的原生交互方法。

## 安装

```bash
pnpm add @kaishi/bridge
```

## 使用

```typescript
import { userInfo, jump2url, showShareBar } from '@kaishi/bridge';

// 获取用户信息
userInfo((result) => {
  console.log('用户信息:', result);
});

// 跳转到指定URL
jump2url({
  url: 'https://example.com',
  title: '示例页面'
});

// 显示分享栏
showShareBar({
  show: true
});
```

## API 列表

### 基础功能

#### `setupWebViewJavascriptBridge(callback: (bridge: any) => void): void`

初始化WebView JavaScript Bridge。

### 导航与页面控制

#### `close(callback?: BridgeCallback): void`

关闭当前页面。

#### `showTitleBar(params?: { show?: boolean }, callback?: BridgeCallback): void`

控制标题栏的显示或隐藏。

#### `changeStatusTextColor(params: { isDark: string }, callback?: BridgeCallback): void`

更改状态栏文本颜色，isDark为'1'表示深色，'0'表示浅色。

#### `gotoPage(params: { page: string }, callback?: BridgeCallback): void`

跳转到指定页面。

#### `jump2url(params: { url: string; title?: string }, callback?: BridgeCallback): void`

跳转到指定URL。

#### `gotoHomePage(callback?: BridgeCallback): void`

跳转至首页并切换到指定标签。

#### `setWebViewTitleText(params: { title: string }, callback?: BridgeCallback): void`

设置WebView标题文本。

#### `setRightBtn(params: { text: string }, callback?: BridgeCallback): void`

设置右侧按钮文本。

#### `change_direction(params: { direction: string }, callback?: BridgeCallback): void`

改变屏幕方向，direction为'1'表示横屏，'0'表示竖屏。

#### `showAppButton(params?: { show?: boolean }, callback?: BridgeCallback): void`

控制应用按钮的显示或隐藏。

### 用户信息与登录

#### `userInfo(callback?: BridgeCallback): void`

获取用户信息，需要登录检查。

#### `userInfoNoCheckLogin(params: { token: string; hcToken: string; userId: string; phone: string; appVersion: string }, callback?: BridgeCallback): void`

获取用户信息，无需登录检查。

#### `tradeLogin(callback?: BridgeCallback): void`

交易登录。

### 分享功能

#### `showShareBar(params?: { show?: boolean }, callback?: BridgeCallback): void`

控制分享栏的显示或隐藏。

#### `setShareUrl(params: { shareTitle: string; shareContent: string; shareImage: string; shareUrl: string }, callback?: BridgeCallback): void`

设置分享内容。

### 设备与系统信息

#### `phone_info(callback?: BridgeCallback): void`

获取手机信息。

#### `isOpenPermission(callback?: BridgeCallback<IsOpenPermissionResult>): void`

判断相机相册权限状态。

#### `requestAuthorization(callback?: BridgeCallback): void`

申请相机相册权限。

### 交互反馈

#### `updatePraised(params: { praised: string }, callback?: BridgeCallback): void`

更新点赞状态，praised为'1'表示已点赞，'0'表示未点赞。

#### `updateFollowed(params: { followed: string }, callback?: BridgeCallback): void`

更新关注状态，followed为'1'表示已关注，'0'表示未关注。

#### `updateComments(params: { comments: string }, callback?: BridgeCallback): void`

更新评论数量。

#### `showTurnOnNotificationDialogIfNeed(callback?: BridgeCallback): void`

显示开启通知对话框（如果需要）。

#### `feedback(params: { type: string }, callback?: BridgeCallback): void`

进入意见反馈页面。

### 视图生命周期

#### `viewWillAppear(callback?: BridgeCallback): void`

视图即将出现时调用。

#### `viewWillDisappear(callback?: BridgeCallback): void`

视图即将消失时调用。

### 支付功能

#### `vipPaySuccess(callback?: BridgeCallback): void`

VIP支付成功回调。

#### `payByWeixin(params: { appid: string; partnerid: string; prepayid: string; package: string; noncestr: string; timestamp: string; sign: string }, callback?: BridgeCallback): void`

唤起微信支付。

#### `payByALL(params: { orderInfo: string }, callback?: BridgeCallback): void`

唤起支付宝支付。

### 媒体与文件

#### `YxSavaAlbum(params: { base64: string }, callback?: BridgeCallback): void`

保存Base64图片到相册。

#### `downloadPDF(params: { url: string }, callback?: BridgeCallback): void`

下载并打开PDF文件。

#### `idCardUpload(callback?: BridgeCallback): void`

上传身份证。

### 直播与交易

#### `liveStudio(params: { studioid: string; tabindex: string }, callback?: BridgeCallback): void`

进入直播间。

#### `tradeTome(params: { hcTradeToken: string }, callback?: BridgeCallback): void`

进入交易首页。

#### `openAccount(params: { title: string; url: string }, callback?: BridgeCallback): void`

打开开户二级页面。

### 自选功能

#### `addOptional(params: { symbol: string; type: string }, callback?: BridgeCallback): void`

为当前用户添加自选。

#### `removeOptional(params: { symbol: string; type: string }, callback?: BridgeCallback): void`

为当前用户取消自选。

### 其他功能

#### `tel(params: { phone: string }, callback?: BridgeCallback): void`

拨打电话。

## 类型定义

```typescript
// 基础回调函数类型
type BridgeCallback<T = any> = (data: T) => void;

// 基础参数接口
interface BridgeBaseParams {
  cmd: string;
  time: number;
  data: Record<string, any>;
}

// 相机相册权限结果接口
interface IsOpenPermissionResult {
  cameraResult: string; // 相机权限，1为开启
  albumResult: string; // 相册权限，1为开启
}
```

## 许可证

MIT