UNPKG

para-bridge-demo

Version:

a bridge api for js-ios/andriod rest

57 lines (51 loc) 1.78 kB
import { BridgePlugin } from '../bridge'; interface IShareToThirdAppParam { // QQ : QQ会话 // QQZone : QQ空间 //Android 844前不支持 // SinaWeibo : 新浪微博 // SMS : 短信 // iOSWX : iOS系统调微信分享(仅iOS),与直接微信分享存在差异 since 9.0.8 platform: 'QQ' | 'QQZone' | 'SinaWeibo' | 'SMS' | 'iOSWX'; // "QQ", // image : 图片 // news : 链接方式(默认) shareType?: 'image' | 'news'; // 分享标题 | 短信时可配置联系人 title: string; // "标题测试", // 分享描述 | 短信内容文字与链接 desc: string; // "测试的描述内容 测试的描述内容", // 分享链接 link: string; // "http://m.fc.com/", // 分享图标/图片 imgUrl: string; // // 分享的base64格式图片,优先级高于imgUrl imgBase64?: string; } interface IShareSocialMsgResult { // 0分享成功|1取消分享|2 操作被拒绝| 3 其他 status: '0' | '1' | '2' | '3'; // 分享结果描述 desc: string; } export class ShareToThirdApp<K> extends BridgePlugin<IShareToThirdAppParam, K>{ protected get ntvPluginName() { return '_ntv_navbar_share_to_thirdapp'; } protected get availableMinVersion() { return '1.0.0'; } protected bridgeExecChrome(): void { // 可针对不同运行环境实现特定的调用逻辑来MOCK,弥补平台差异性. throw new Error('ShareToThirdApp() 未针对当前环境实现'); } } /** * 第三方社交平台分享,除微信 */ export const shareToThirdapp = (param: IShareToThirdAppParam) => { if (!param.shareType) { param.shareType = 'news'; } return new ShareToThirdApp<IShareSocialMsgResult>(param).invokeOnce().then(result => { return result.cbData; }); }