パッケージを使用してドキュメントファイルにデータを書き込み、react-native-fs
そのドキュメントを別のユーザーにメールで送信しようとしていました。react-native-mail
私は1つのことを除いてそれをうまく実装しました。ドキュメントを開こうとすると、「ドキュメントを開くことができません。ファイルが破損しているようです」と表示されます。しかし、これを txt 形式で送信しようとすると、ファイルを開いてその内容を表示できます。doc 形式の場合、同じものを再現できないのはなぜですか。以下は私のコードです。
if (
permRes["android.permission.READ_EXTERNAL_STORAGE"] ===
PermissionsAndroid.RESULTS.GRANTED &&
permRes["android.permission.WRITE_EXTERNAL_STORAGE"] ===
PermissionsAndroid.RESULTS.GRANTED
) {
if (data !== null) {
data.map(item => {
var path = RNFS.ExternalStorageDirectoryPath + "/test.doc";
console.log("pathpath", path);
RNFS.writeFile(
path,
"Project Details\n" +
"\nProject name: " +
item.project_name +
"\nProject Description: " +
item.project_description +
"\nClient name: " +
item.client_name +
"\nCompany: " +
item.company +
"\nPhone number: " +
item.phone_number +
"\nEmail: " +
item.email,
"utf8"
)
.then(success => {
console.log("FILE WRITTEN");
Mailer.mail(
{
subject:
Strings.string_rem + " :" + Strings.string_projectDetails,
recipients: ["vinaynarayankutty@gmail.com"],
body: "<b>This is a test document</b>",
isHTML: true,
attachment: {
path: RNFS.ExternalStorageDirectoryPath + "/test.doc",
type: "doc",
name: "Project details"
}
},
(error, event) => {
Alert.alert(
error,
event,
[
{
text: "Ok",
onPress: () => console.log("OK: Email Error Response")
},
{
text: "Cancel",
onPress: () =>
console.log("CANCEL: Email Error Response")
}
],
{ cancelable: true }
);
}
);
})
.catch(err => {
console.log(err.message);
alert(err.message);
});
});
}
}