我正在使用Xamarin Studio为iOS开发应用扩展程序。我试图使用一个应该在Foundation API中的类,但我找不到它。该类称为NSJavaScriptExtension
。
我尝试通过指定命名空间来访问它:
Foundation.NSJavaScriptExtension
我还尝试使用using
指令:
using Foundation;
当我尝试编译它时,我收到以下错误消息:
错误CS0103:名称'NSJavaScriptExtension'不存在于 当前背景(CS0103)
这很奇怪,因为Xamarin documentation表示它存在。
这是我的代码:
// Create an extension Item
var extensionItem = new NSExtensionItem ();
// Create a Final value Dictionary
var finalize = new NSMutableDictionary ();
finalize.Add (NSJavaScriptExtension.FinalizeArgumentKey, new NSString ("{bgColor:red}")); // <- here
// Create an item provider and attach it to the extension item
var provider = new NSItemProvider (finalize, MobileCoreServices.UTType.PropertyList);
extensionItem.Attachments = new NSItemProvider[]{ provider };
// Send results to the calling Host App
ExtensionHelper.ExtensionContext.CompleteRequest (new NSExtensionItem[]{ extensionItem },
(completionHandler) => {
return;
});
答案 0 :(得分:2)
XI 9.0中添加了NSJavaScriptExtension
类型。获得它的最简单方法是升级到最新的稳定版本,该版本也可以针对较旧的iOS版本。
如果无法更新,则可以在运行时手动加载任何常量,例如:
using Foundation;
using ObjCRuntime;
...
IntPtr foundation = Dlfcn.dlopen (Constants.FoundationLibrary, 0);
NSString FinalizeArgumentKey = Dlfcn.GetStringConstant (foundation.Handle, "NSExtensionJavaScriptFinalizeArgumentKey");