npm i --save @dante1304/ns-share-file
- 版本:1.0.1
- GitHub: https://github.com/13dante04/ns-plugins
- NPM: https://npmjs.net.cn/package/%40dante1304%2Fns-share-file
- 下载
- 昨天: 0
- 上周: 0
- 上个月: 0
@nativescript/share-file
ns plugin add @1304dante/ns-share-file
在安卓和iOS应用间共享文件
使用方法
在安卓上,您需要在 AndroidManifest.xml
中添加一个文件提供者,以及一个下载路径值文件,以下是一个示例,文件位于 App_Resources\Android\src\main\res\xml\download_path.xml
AndroidManifest.xml
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.package.name.provider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/download_path"
tools:replace="android:resource" />
</provider>
download_path.xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="external"
path="." />
<external-files-path
name="external_files"
path="." />
<cache-path
name="cache"
path="." />
<external-cache-path
name="external_cache"
path="." />
<files-path
name="files"
path="." />
</paths>
TypeScript 使用方法
import { ShareFile } from '@1304dante/ns-share-file';
import { knownFolders, path} from '@nativescript/core';
export class SharingClass {
constructor() {
let fileName = this.documentsLocation() + 'path/to/file'
ShareFile.share({
path: fileName,
android: { //android specific
title: 'Open text file with:'
},
ios: { //ios specific
animated: true,
rect: { //ipad specific
x: 110,
y: 110,
width: 0,
height: 0
}
}
});
}
public documentsLocation() {
if (global.isAndroid) {
return android.os.Environment.getExternalStoragePublicDirectory(android.os.Environment.DIRECTORY_DOWNLOADS).toString() +
'/documents';
}
if (global.isIOS) {
return path.join(knownFolders.currentApp().path) + '/documents';
}
}
}
许可证
Apache许可证版本2.0