para-bridge-demo
Version:
a bridge api for js-ios/andriod rest
57 lines (51 loc) • 1.78 kB
text/typescript
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;
});
}