有没有办法以编程方式访问 Xamarin 可移植 C# 代码中的应用程序包名称/命名空间/版本信息?
Like this https://stackoverflow.com/questions/8643221/android-how-to-get-package-name(链接是如何访问Android,我想知道是否有预先存在的C#跨平台方法可以在可移植类代码中访问它。)
Not this https://stackoverflow.com/questions/20876576/get-applications-package-name.
我得到了您问题的答案,但它正在使用依赖服务来工作。如果没有Xamarin插件就没有其他办法了。
这是代码:
pcl项目中的接口:
public interface IPackageName
{
string PackageName { get; }
}
安卓实现:
public class PackageNameDroid : IPackageName
{
public PackageNameDroid()
{
}
public string PackageName
{
get { return Application.Context.PackageName; }
}
}
iOS 实现:
public class PackageNameIOS : IPackageName
{
public PackageNameIOS()
{
}
public string PackageName
{
get { return NSBundle.MainBundle.BundleIdentifier; }
}
}
不要忘记在 Android 文件中标记依赖服务的平台文件:
[assembly: Xamarin.Forms.Dependency(typeof(PackageNameDroid))]
和 iOS 文件:
[assembly: Xamarin.Forms.Dependency(typeof(PackageNameIOS))]
现在您可以开始使用它了,就像这样在 PCL 中:
string packageName = DependencyService.Get<IPackageName>().PackageName;
希望它对其他人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)