我正在使用cordova社交分享插件。 这是我的代码。
public shareTo(): void {
var options = {
message: 'Check out this item',
subject: 'Item',
url: 'http://example.com',
chooserTitle: 'Share via...'
};
SocialSharing.shareWithOptions(options);
console.log(options);
}
我希望能够将数据库中的URL更改为所选项目URL。例如......
url: item.url
这是我的html按钮。
<button ion-button (click)="shareTo()">
因此,当有人点击分享时,该网址会更改为所选项目网址的网址。但是,我想知道是否可以使用shareWithOptions。
答案 0 :(得分:2)
简短回答
是的,这是可能的。
更长的回答:
我将讨论2个场景,包含和不包含列表。该方案考虑到必须定义item
,并且必须是http://example.com/item/3
场景1 ,位于包含属性item
此方案需要您班级中名为item
的媒体资源。 (所以f.e。let item: { url: 'someUrl'}; constructor(){ ... }
)
如果您在详细信息页面上没有与项目相关的列表。 (你基本上自己提供了这个答案)
<button ion-button (click)="shareTo()">
ts
public shareTo(): void {
var options = {
message: 'Check out this item',
subject: 'Item',
url: item.url, //the property mentioned in the explanation
chooserTitle: 'Share via...'
};
SocialSharing.shareWithOptions(options);
console.log(options);
}
列表页面上的场景2
让我们考虑您拥有一个名为itemList
的项目列表。现在,您希望能够从您现在所在的同一页面分享这些内容中的任何一个。
html就像(注意方法中传递的item对象)
<div *ngFor="let item of itemList" (click)="shareTo(item)">
{{item}}
</div>
然后可以保持与上面相同的Typescript,只需添加一个参数。
public shareTo(item: any): void {
var options = {
message: 'Check out this item',
subject: 'Item',
url: item.url, //the paramater
chooserTitle: 'Share via...'
};
SocialSharing.shareWithOptions(options);
console.log(options);
}
您基本上构建了一个[Object]
,其中包含message
,subject
,url
和chooserTitle
属性,因此没有理由这不应该工作。