ios - 从今日扩展中以编程方式从plist获取URL方案

标签 ios xamarin.ios info.plist today-extension

最终,我试图通过以下方式从Widget启动Main应用

UIApplication.SharedApplication.OpenUrl(new NSUrl("MyURLScheme//"));

所以我有一个带有今天扩展名的iOS应用程序。我想访问主应用程序的URL方案。那可能吗?我的URL方案位于我的主应用程序的Plist文件中,而不是今天的扩展名。我可以只从主应用程序中引用一个吗?我尝试从CFBundleURLTypes和CFBundleURLSchemes获取它,但它们都显示为“null”。
可能是因为它在窗口小部件的Plist中查找,而不是在主应用程序的Plist中查找。
var asdf2 = NSBundle.MainBundle.InfoDictionary["CFBundleURLTypes"];
var asdf3 = NSBundle.MainBundle.InfoDictionary["CFBundleURLSchemes"];

这是URL方案在主应用程序的Plist文件中的位置的屏幕截图。我希望不必在今天的扩展程序的Plist文件中存储重复的信息。而且我也不想不必将URL Scheme硬编码为今天的扩展的代码。

enter image description here

最佳答案

会是(丑陋的)这样的东西:

var arr = (NSBundle.MainBundle.InfoDictionary["CFBundleURLTypes"] as NSMutableArray);
var urlTypes = arr.GetItem<NSDictionary>(0);
var schemes = urlTypes.ObjectForKey(new NSString("CFBundleURLSchemes")) as NSMutableArray;
var scheme = schemes.GetItem<NSString>(0).ToString();

关于ios - 从今日扩展中以编程方式从plist获取URL方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44836010/

相关文章:

ios - 让 SKEmitterNode 看起来自然?

iphone - 如何添加pull tableview up来刷新uitableview里面的数据

ios - NSUserDefaults和.plist文件有什么区别

php - 如何使用 php 将 iOS 应用程序连接到 mySQL 数据库

ios - 将 Appcode 与 Kotlin/Native 和 Cocoapods 一起使用

xamarin.ios - 使用 mdtool 编译 MonoTouch 应用程序时,为 Android SDK 查找 Mono 时出错

ios - ASP.Net LinkBut​​ton 和 iOS UIWebView

ios - 获取设备位置而不在单点触控上显示蓝点

cocos2d-iphone - iOS 应用验证错误 : Missing plist key CFBundleShortVersionString

ios - Xcode/iOS - CFBundleAlternateIcons 未更改