Nativescript 如何以本机脚本编程方式获取应用程序名称

Nativescript 如何以本机脚本编程方式获取应用程序名称,nativescript,Nativescript,我正在尝试将一些文件保存到本地文件存储中,因此,我正在执行以下操作 var folder_name = "abcde/" + viewModel.dir_path; const documents = fileSystemModule.knownFolders.documents(); documents._path = android.os.Environment.getExternalStorageDirectory().get

我正在尝试将一些文件保存到本地文件存储中,因此,我正在执行以下操作

var folder_name = "abcde/" + viewModel.dir_path;
                const documents = fileSystemModule.knownFolders.documents();
                documents._path = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
                const folder = documents.getFolder(folder_name);
                var file = fileSystemModule.path.join(folder._path, this.pdf_url.split("/").pop());
                var url = this.pdf_url;

                httpModule.getFile(url, file).then(function(result) {
                    console.log(result);
                    Toast.makeText(`${result._name} is succesfully downloaded in ${folder_name}`).show();

                }, function(e) {
                    console.log(e);
                });
唯一的问题是硬编码值
abcde/
我希望它是
app name
。无论应用程序名是什么,它都应该使用该名称


我找不到任何程序化阅读应用程序名称的方法。我需要这个Android,我对IOS不感兴趣。

也许这就是答案之一。但这仍然不是一个正确的方法

const documents = fileSystemModule.knownFolders.currentApp();
console.log(documents); --> "/data/data/org.nativescript.app_name/files/app"
var str = documents;
var arr = str.split("/")[3];
console.log(arr.split(".")[2]); ---> app_name

也许这就是答案。但这仍然不是一个正确的方法

const documents = fileSystemModule.knownFolders.currentApp();
console.log(documents); --> "/data/data/org.nativescript.app_name/files/app"
var str = documents;
var arr = str.split("/")[3];
console.log(arr.split(".")[2]); ---> app_name

在Android中,您可以在
strings.xml
中为应用程序设置应用程序名称,例如:

<string name="app_name">"App_Name"</string>
“应用程序名称”

然后,每当您想要重用应用程序名称时,您都可以在应用程序中使用其名称的
getString
方法。

在Android中,您可以在
strings.xml
中为应用程序设置应用程序名称,例如:

<string name="app_name">"App_Name"</string>
“应用程序名称”

然后,无论何时您想要重用应用程序名称,都可以在应用程序中使用
getString
方法及其名称。

无论是什么,这都提供了一种解决方法,以便我可以实现我需要的。我目前将此标记为答案。第三个分隔符后的字符串不一定是应用程序名称。不管是什么,这都会提供一个解决方案,以便我能够实现我所需要的。我将此标记为当前答案。第三个分隔符后的字符串不一定是应用程序名称。该文件在哪里。请从app_Resource/Android/res/values/strings.xml中找到它,然后自己创建它:。之后,要使用strings值设置应用程序名称,您需要编辑AndroidManifest.xml,然后将
android:label=“@string/app_name”
添加到标记中。我认为上述答案适用于ios和android。但你所说的只是android,对吧?iOS也是一样,你可以在Info.plist中设置应用程序名,你也可以从Bundle中检索它。上面的答案对两者都有效,但正如你所说,这不是正确的方法。如果你想为两个平台都使用一个合适的方式,那么考虑开发一个使用每个平台的正确方法的插件(例如,已经有了一个插件来获得应用程序版本:)那个文件在哪里。从AppyRealth/Android /RES/Value/StrugsxxMxxMxxMxxMyxMxMy找到它。之后,要使用strings值设置应用程序名称,您需要编辑AndroidManifest.xml,然后将
android:label=“@string/app_name”
添加到标记中。我认为上述答案适用于ios和android。但你所说的只是android,对吧?iOS也是一样,你可以在Info.plist中设置应用程序名,你也可以从Bundle中检索它。上面的答案对两者都有效,但正如你所说,这不是正确的方法。如果你想为两个平台都使用合适的方式,那么考虑开发一个插件,使用每个平台的正确方法(例如,已经有了一个插件来获得应用程序版本:)