Я пытаюсь вызвать функцию Javascript для объекта JS из Native в WKUserContentController, но, похоже, не существует возможного подхода.
Мой Javascript код (Здесь мой js -plugin пытается выполнить вызов функции для native.После завершения собственного рабочего процесса он должен иметь возможность самостоятельно обновлять его в nativeWorkflowDone): -
define(["core/plugin-core"],
function (PluginCore) {
"use strict";
var UPLOAD_LINK= PluginCore.UploadLink.prototype.UPLOAD_STATES;
_proxy: = {};
PluginCore.NativeObject= PluginCore.Api.extend({
initialize: function () {
PluginCore.Api.prototype.initialize.call(this);
this.startWorkflow();
},
nativeWorkflowDone : function(populatedData) {
for(var key in populatedData)
this._proxy[key] = populatedData[key];
//HTML to be modified here once nativeWorkflow is done.
},
startWorkflow: function(workflowOptions){
var message = {"object" : this, "function" : nativeWorkflowDone };
window.webkit.messageHandlers.Workflow.postMessage(message)
}
};
My Objective- C код для обработки JS вызовов: -
-(void) userContentController:(nonnull WKUserContentController*)userContentController didRecieveScriptMessage:(nonnull WKScriptMessage*)message{
if([message.name isEqualToString:@"getCount"]) {
NSString *js = [NSString stringWithFormat:@"UpdateCount('%@');", mCount++];
[mWebBrowser evaluateJavaScript:js completionHandler:nil];
} else if(message.name isEqualToString:@"Workflow"]) {
//NOT SURE HOW TO GET JS OBJECT "this" HERE. ALSO, HOW CAN I CALL BACK ON IT Eg this.nativeWorkflowDone ?????.
}
}
Может ли кто-нибудь помочь мне понять, как я могу получить объект JS (например, 'this') в Native WKUserContentController в WKWebView? Кроме того, как я могу вызвать его метод из Native?