插件
社交分享
@nativescript/social-share
内容
安装
cli
npm install @nativescript/social-share
用法
分享图片
要分享图片,请使用 shareImage() 函数。
ts
import { shareImage } from "@nativescript/social-share"
import { ImageSource } from "@nativescript/core"
async doShareImage() {
const imageSrc = await ImageSource.fromUrl(
'https://thiscatdoesnotexist.com/'
);
shareImage(imageSrc);
}
您可以选择提供第二个参数来添加有关图片的更多信息
ts
shareImage(imageSrc, {
caption: 'Your favorite cat of all times',
subject: 'Some subject',
fileFormat: 'png',
})
分享 URL
要分享 URL,请使用 shareUrl() 函数。
ts
import { shareUrl } from '@nativescript/social-share'
shareUrl(
'https://www.nativescript.org/',
'Home of NativeScript',
'How would you like to share this url?'
)
通过 Twitter 应用分享
要通过 Twitter 移动应用分享内容,请使用 shareViewTwitter() 函数。
ts
import { shareViaTwitter } from '@nativescript/social-share'
shareViaTwitter('Home of NativeScript', 'https://www.nativescript.org/')
分享 PDF 文件
要分享 PDF 文件,请使用 sharePdf 函数。
ts
import { sharePdf } from '@nativescript/social-share'
let pdf = File.fromPath('~/path/to/myPdf.pdf')
sharePdf(pdf, 'How would you like to share this text?')
API
shareImage()
ts
shareImage(imageSource, options)
允许您分享 ImageSource
。
参数 | 类型 | 描述 |
---|---|---|
imageSource | ImageSource | 要分享的图片。 |
options | ShareOptions | 可选: 提供有关图片的更多信息的对象。 |
ShareOptions
属性 | 类型 | 描述 |
---|---|---|
caption | string | 可选: 与图片一起分享的标题 |
subject | string | 可选: (Android-only ) 分享的主题。 |
fileFormat | 'png' |'jpg' | 可选: (Android-only ) 生成的图片格式。默认为 'jpg' 。 |
shareText()
js
import { shareText } from '@nativescript/social-share'
shareText(text, subject)
分享指定的文字。期望一个简单的字符串。
参数
参数 | 类型 | 描述 |
---|---|---|
text | string | 要与 URL 一起分享的文字。 |
subject | string | 可选: (Android-only ) 要分享的 URL。 |
sharePdf()
js
import { sharePdf } from '@nativescript/social-share'
sharePdf(pdf, subject)
用于分享 PDF 文件。
参数
参数 | 类型 | 描述 |
---|---|---|
pdf | File | 要分享的 PDF 文件。 |
subject | string | 可选: (Android-only ) 要分享的 URL。 |
shareUrl()
js
shareUrl(url, text, subject)
允许您分享 URL。
参数
参数 | 类型 | 描述 |
---|---|---|
url | string | 要分享的 URL。 |
text | string | 要与 URL 一起分享的文字。 |
subject | string | 可选: (Android-only ) 要分享的 URL。 |
shareViaTwitter()
ts
async doShareTwitter() {
await shareViaTwitter(text, url);
}
通过 Twitter 应用分享文字和/或 URL。
参数
参数 | 类型 | 描述 |
---|---|---|
url | string | 可选: 要分享的 URL。 |
text | string | 可选: 要分享的文字。 |
shareViaFacebook()
ts
async doShareFacebook() {
await shareViaFacebook(text, url);
}
通过 Facebook 应用分享文字和/或 URL。
参数
参数 | 类型 | 描述 |
---|---|---|
url | string | 可选: 要分享的 URL。 |
text | string | 可选: 要分享的文字。 |
注意
由于 Facebook 安全/滥用预防措施,text
通常会被抑制,但 URL 会通过。
Android 独占说明
- 如果您已经在项目中使用 Facebook Share SDK,那么您可能 *不需要* 添加以下内容。如果您尚未在项目中显式使用 sdk,请将以下内容添加到您的
app.gradle
文件中
groovy
dependencies {
implementation 'com.facebook.android:facebook-share:[5,6)'
}
- 将
meta-data
和provider
部分添加到AndroidManifest.xml
文件中
xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
...>
<application
android:name="com.tns.NativeScriptApplication"
..>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<provider android:authorities="com.facebook.app.FacebookContentProvider{your-facebook-appid}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"
tools:replace="android:authorities"/>
<activity
android:name="com.tns.NativeScriptActivity"
..>
- 在
App_Resources/Android/src/main/res/values/
中创建一个名为facebooklogin.xml
的文件。将此内容添加到该文件中(替换 id)
xml
<?xml version='1.0' encoding='utf-8' ?>
<resources>
<string name="facebook_app_id">126035687816994</string>
</resources>
演示应用
在 StackBlitz 上尝试插件演示 这里。
许可证
Apache 许可证 2.0 版