gpt4 book ai didi

ios - 需要在 Xcode 中创建一个 Objective-C 方法并从 JavaScript Cordova App 中调用它

转载 作者:行者123 更新时间:2023-11-29 00:48:20 24 4
gpt4 key购买 nike

我创建了一个 Cordova 应用程序并创建了 iOS 平台。我需要在 Xcode 中创建一个 Objective-C 方法并从 JavaScript/HTML 页面调用它。

AppDelegate.h中的代码是

#import <Cordova/CDVViewController.h>
#import <Cordova/CDVAppDelegate.h>

@interface AppDelegate : CDVAppDelegate {}

@end

AppDelegate.m中的代码是

#import "AppDelegate.h"
#import "MainViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
self.viewController = [[MainViewController alloc] init];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

@end

任何分步教程或示例?

最佳答案

在 Cordova 中,可以从 JavaScript 调用的本地函数是使用插件创建的。看看 Plugin Development Guide创建您自己的插件或搜索 already existing plugins实现您需要的功能。


此样本摘自 iOS Plugin Development Guide :

1。声明javascript函数

window.echo = function(str, callback) {
cordova.exec(callback, function(err) {
callback('Nothing to echo.');
}, "Echo", "echo", [str]);
};

2。实现平台特定代码:

/********* Echo.h Cordova Plugin Header *******/

#import

@interface Echo : CDVPlugin

- (void)echo:(CDVInvokedUrlCommand*)command;

@end

/********* Echo.m Cordova Plugin Implementation *******/

#import "Echo.h"
#import

@implementation Echo

- (void)echo:(CDVInvokedUrlCommand*)command
{
CDVPluginResult* pluginResult = nil;
NSString* echo = [command.arguments objectAtIndex:0];

if (echo != nil && [echo length] > 0) {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
} else {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
}

[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}

@end

3。创建插件配置文件:

<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="Echo">
<param name="ios-package" value="Echo" />
</feature>
</config-file>
</platform>

4。从 Javascript 调用此函数:

window.echo("echome", function(echoValue) {
alert(echoValue == "echome"); // should alert true.
});

关于ios - 需要在 Xcode 中创建一个 Objective-C 方法并从 JavaScript Cordova App 中调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com