CompleteRequest后未定义iOS应用程序扩展javascript参数

CompleteRequest后未定义iOS应用程序扩展javascript参数,javascript,c#,ios,xamarin,xamarin.ios,Javascript,C#,Ios,Xamarin,Xamarin.ios,我正在制作一个iOS操作应用程序扩展,在monotouch中调用CompleteRequest方法后,我无法访问javascript文件中的finalize()函数中的数据。我的javascript文件中的run()方法工作得很好,因为我可以像中一样获取页面url 这是我的代码: NSDictionary itemData = new NSDictionary(new NSString("bgColor"),new NSString("red")); var resultsDictionary

我正在制作一个
iOS操作应用程序扩展
,在monotouch中调用
CompleteRequest
方法后,我无法访问javascript文件中的
finalize()
函数中的数据。我的javascript文件中的run()方法工作得很好,因为我可以像中一样获取页面url

这是我的代码:

NSDictionary itemData = new NSDictionary(new NSString("bgColor"),new NSString("red"));

var resultsDictionary = new NSDictionary(NSJavaScriptExtension.FinalizeArgumentKey, itemData);

var resultsProvider = new NSItemProvider(resultsDictionary, "kUTTypePropertyList");

var resultsItem = new NSExtensionItem();
resultsItem.Attachments = new NSItemProvider[] { resultsProvider };

ExtensionHelper.ExtensionContext.CompleteRequest(new NSExtensionItem[] { resultsItem }, null);
在我的javascript文件中:

var MyExtensionJavaScriptClass = function() {};

MyExtensionJavaScriptClass.prototype = {
     run: function(arguments) {
         // This works completely fine
         arguments.completionFunction({"baseURI": document.baseURI});
     },
     finalize: function(arguments) {
         console.log(arguments["bgColor"]); // Undefined
         document.body.style.backgroundColor = arguments["bgColor"];
     }
};

var ExtensionPreprocessingJS = new MyExtensionJavaScriptClass; 
当我将finalize函数的arguments变量转储到控制台时,它看起来像一个空对象:

Object

    __defineGetter__: function __defineGetter__() {
    __defineSetter__: function __defineSetter__() {
    __lookupGetter__: function __lookupGetter__() {
    __lookupSetter__: function __lookupSetter__() {
    constructor: function Object() {
    hasOwnProperty: function hasOwnProperty() {
    isPrototypeOf: function isPrototypeOf() {
    propertyIsEnumerable: function propertyIsEnumerable() {
    toLocaleString: function toLocaleString() {
    toString: function toString() {
    valueOf: function valueOf() {
    __proto__: Object
以下是simulator system.log包含的内容:

MobileSafari[64987]: completed request - items: (
        "<NSExtensionItem: 0x7d798940> - userInfo: {\n    NSExtensionItemAttachmentsKey =     (\n        \"<NSItemProvider: 0x7d78f910> {types = (\\n    kUTTypePropertyList\\n)}\"\n    );\n}"
    )
MobileSafari[64987]:已完成的请求-项目:(
“-userInfo:{\n扩展项附件斯基=(\n\“{types=(\\n kUTTypePropertyList\\n)}\”\n);\n}”
)

显然,Xamarin.iOS有一些无效代码


如果您查看中的两个示例,您会发现它们没有使用
“kUTTypePropertyList”
作为标识符,而是使用常量
kUTTypePropertyList
。通过一点研究,我在Xamarin中找到了等价物:
MobileCoreServices.UTType.PropertyList
。更换它将解决此问题。

谢谢您的帮助。