SafariiOS8的扩展

SafariiOS8的扩展,ios,safari,ios8,ios-app-extension,Ios,Safari,Ios8,Ios App Extension,我正在为safari开发扩展。我已经检查过我们可以在主机应用程序和扩展程序之间进行通信,因为我们可以运行扩展程序或关闭扩展程序。但在我的情况下,我希望在不关闭扩展程序的情况下与主机应用程序通信 var MyExtensionJavaScriptClass = function() {}; MyExtensionJavaScriptClass.prototype = { run: function(arguments) { arguments.completionFunction({"ba

我正在为safari开发扩展。我已经检查过我们可以在主机应用程序和扩展程序之间进行通信,因为我们可以运行扩展程序或关闭扩展程序。但在我的情况下,我希望在不关闭扩展程序的情况下与主机应用程序通信

var MyExtensionJavaScriptClass = function() {};
MyExtensionJavaScriptClass.prototype = {
run: function(arguments) {
    arguments.completionFunction({"baseURI": document.documentElement.innerHTML});
 },

test: function(arguments) {

    alert("Need to run without closing extension");

},
finalize: function(arguments) {

    alert("Test Done");
    // arguments contains the value the extension provides in [NSExtensionContext completeRequestReturningItems:expirationHandler:completion:].
    // In this example, the extension provides a color as a returning item.
    document.body.style.backgroundColor = arguments["bgColor"];

}
};
var ExtensionPreprocessingJS = new MyExtensionJavaScriptClass;
在上面的JavaScript文件中,我运行了在扩展运行时运行的函数,并在objc端调用completeRequestReturningItems时完成有趣的运行。我希望在不关闭扩展的情况下运行测试函数

引自扩展如何通信一节

正在运行的扩展与其包含的应用程序之间没有直接通信;通常,包含应用程序的应用程序在其扩展运行时甚至没有运行

这并不是说你不能,只是苹果不想要你,这样做的能力可能是私人的,也可能是不存在的。

你不需要

引自扩展如何通信一节

正在运行的扩展与其包含的应用程序之间没有直接通信;通常,包含应用程序的应用程序在其扩展运行时甚至没有运行


这并不是说你不能,只是苹果不想要你,这样做的能力可能是私人的,也可能是不存在的。

快速术语级别集:

包含应用程序=包含一个或多个扩展名的应用程序称为包含应用程序 Host App=可以让用户选择扩展以帮助他们执行任务的应用称为Host App


也就是说,苹果并没有提供从主机应用到扩展的通信流。在您的情况下,您可以先在JS预处理文件中运行加载数据,然后使用finalize在扩展退出时使用数据进行响应。

快速术语级别集:

包含应用程序=包含一个或多个扩展名的应用程序称为包含应用程序 Host App=可以让用户选择扩展以帮助他们执行任务的应用称为Host App


也就是说,苹果并没有提供从主机应用到扩展的通信流。就你而言,您可以先在JS预处理文件中加载运行数据,然后在使用finalize退出扩展时使用数据进行响应。

如果您发布了一些扩展代码,这可能会对您有所帮助。不关闭扩展应用程序而运行扩展应用程序是什么意思?我想在不关闭或调用扩展应用程序的情况下与宿主应用程序通信completeRequestReturningItems扩展应用如果您发布了一些扩展代码,可能会对您有所帮助。您不关闭扩展应用而运行它是什么意思?我想在不关闭或调用completeRequestReturningItems扩展应用的情况下与托管应用进行通信我关心的不是包含应用。我是在询问托管应用程序和扩展。我想与托管应用程序进行通信,但不关闭或调用completeRequestReturningItems扩展应用程序包含提供扩展的应用程序;托管应用程序。如果它引用的是承载当前运行的扩展的应用程序,那么我引用的内容将毫无意义。我关心的不是包含应用程序。我询问的是承载应用程序和扩展。我希望在不关闭或调用completeRequestReturningItems的情况下与承载应用程序通信。扩展应用包含应用程序引用的应用程序提供扩展;托管应用程序。如果它指的是承载当前正在运行的扩展的应用程序,那么我引用的内容将毫无意义。