在app扩展中找不到Foundation.NSJavaScriptExtension类

时间:2015-09-17 15:31:00

标签: c# ios xamarin xamarin.ios

我正在使用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;
});

1 个答案:

答案 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");