SAP Mobile Platform includes the Cordova 2.0 libraries. Follow these steps if you want to upgrade the iOS Hybrid Web Container to a more recent version of the Cordova library.
@property (nonatomic, strong) UIViewController* viewController;
-(void) createGapView;
-(void)setTheWebView: (UIWebView*) theWebView; -(void)setTheViewController: (UIViewController*) theViewController;
@synthesize viewController = _viewController;
#if 0
NSURL* appURL = nil;
NSString* loadErr = nil;
if ([self.startPage rangeOfString:@"://"].location != NSNotFound) {
appURL = [NSURL URLWithString:self.startPage];
} else if ([self.wwwFolderName rangeOfString:@"://"].location != NSNotFound) {
appURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", self.wwwFolderName, self.startPage]];
} else {
NSString* startFilePath = [self.commandDelegate pathForResource:self.startPage];
if (startFilePath == nil) {
loadErr = [NSString stringWithFormat:@"ERROR: Start Page at '%@/%@' was not found.", self.wwwFolderName, self.startPage];
NSLog(@"%@", loadErr);
self.loadFromString = YES;
appURL = nil;
} else {
appURL = [NSURL fileURLWithPath:startFilePath];
}
}
#endif
…
#if 0
// // Instantiate the WebView ///////////////
[self createGapView];
// /////////////////
#endif
…
#if 0
if (!loadErr) {
NSURLRequest* appReq = [NSURLRequest requestWithURL:appURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
[self.webView loadRequest:appReq];
} else {
NSString* html = [NSString stringWithFormat:@" %@ ", loadErr];
[self.webView loadHTMLString:html baseURL:nil];
}
#endif
[plugin setViewController:self];with
[plugin setViewController: self.viewController];
-(void) setTheWebView: (UIWebView*) theWebView {
self.webView = theWebView;
}
-(void) setTheViewController: (UIViewController *)theViewController {
self.viewController = (CDVViewController*)theViewController;
}
self.whitelist = nil;
self.viewController = nil;
[super viewDidLoad];
<feature name="AppLog"> <param name="ios-package" value="AppLogPlugin"/> </feature> <feature name="HttpsProxy"> <param name="ios-package" value="HttpsProxyPlugin"/> </feature>
#ifdef USE_CORDOVA
#import <Cordova/CDVViewController.h>
#import <Cordova/CDVContacts.h>
#else
#import "CDVViewController.h"
#import "CDVContacts.h"
#endif
#endif
with:#import <Cordova/CDVViewController.h> #import <Cordova/CDVContacts.h>
[CDVContacts setContactsAccessDelegate:self];
static BOOL s_bContactsChallengeInProgress = NO;
+ (BOOL) isContactsChallengeInProgress
{
return s_bContactsChallengeInProgress;
}
- (void) requestContactsAccess {
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 60000
NSArray* versionCompatibility = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
NSInteger iMajorVersion = [[versionCompatibility objectAtIndex:0] intValue];
if (iMajorVersion >= 6)
{
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
{
s_bContactsChallengeInProgress = YES;
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
{
s_bContactsChallengeInProgress = NO;
});
CFRelease(addressBookRef);
}
while (s_bContactsChallengeInProgress)
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
[pool release];
}
}
#endif
}
bPresentingContactsChallenge = [HWCAppDelegate isContactsChallengeInProgress];
- (void) requestContactsAccess;