gpt4 book ai didi

ios - Cleaver(PhoneGap/Cordova 作为组件)在 iOS 中不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:20:07 26 4
gpt4 key购买 nike

我尝试使用 Cleaver,即 PhoneGap/Cordova 作为现有 iOS 应用程序的组件。我关注了this step by step guide两次,没有成功。

我的应用程序可以轻松实例化 Web View ,并且我可以使用 stringbyevaluatingjavascriptfromstring 将内容传递给它方法,但是当我尝试访问 PhoneGap API ( navigator.compass, navigator.network, ... ) 时,似乎没有任何效果。 console.log(navigator)没有显示 Cordova 对象的迹象( console.log 不输出任何 Xcode,我正在使用 http://debug.phonegap.com/ )。 deviceready事件也没有被触发。

在我的 html 文件中,我包含了 PhoneGap js 文件 cordova-1.7.0rc1.js这是我从另一个项目复制的(因为当您将 PhoneGap 用作组件时 /www 文件夹丢失)。

我的 ViewController.h进口<Cordova/CDVViewController.h> .这是我的 ViewController.m

//
// ViewController.m
// CordovaComponent
//

#import "ViewController.h"

@interface ViewController (){
CDVViewController *cdvViewController ;
}
@end

@implementation ViewController

- (void)pushPhoneGap:(id)sender {

cdvViewController = [[CDVViewController alloc] init];
cdvViewController.wwwFolderName = @"www";
cdvViewController.startPage = @"index.html";
cdvViewController.view.frame = self.view.bounds;
cdvViewController.webView.delegate = self;
[self.navigationController pushViewController:cdvViewController animated:YES];
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Push PhoneGap view" forState:UIControlStateNormal];
[button addTarget:self action:@selector(pushPhoneGap:) forControlEvents:UIControlEventTouchUpInside];
button.frame = CGRectMake(60, 50, 200., 50.);
[self.view addSubview:button];
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *jsReturn = [cdvViewController.webView stringByEvaluatingJavaScriptFromString:@"setArray([1, 1, 2, 3, 5, 8, 13, 21, 34, 1]);"];
NSLog(jsReturn);
}

@end

你知道发生了什么事吗?任何帮助将不胜感激!

最佳答案

好的,经过几个小时的尝试解决这个问题,我终于找到了问题所在。这是把事情搞砸的行:

cdvViewController.webView.delegate = self;

您不能只覆盖 View Controller 的 WebView 的委托(delegate)。原始委托(delegate)具有使 PhoneGap 能够运行的实例化代码。不要覆盖它,一切都会好起来的!

关于ios - Cleaver(PhoneGap/Cordova 作为组件)在 iOS 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264814/

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