My company has a webpage (internal, sadly, so I can't let you have a link to 
look at) which is entirely driven by Javascript, and which requires 
authentication to access (the authentication too is driven by Javascript, 
rather than by the more normal https sign in methods).

The website is a) ugly as hell, b) not very flexible and c) won't format 
correctly on the screen of an iPhone.  The first issue is aesthetic, the second 
is a serious issue and the third could well be a problem in the future.

The obvious answer would be 'change the site', but that isn't very practical 
sadly - political issue, don'tchaknow!  I'm working hard to increase uptake of 
Apple equipment at work, and if I can encapsulate the website as a friendly app 
on the Mac that could be a major driver.  This is just a project that I'm 
kicking around out of hours for the love of it and in the hope that Macs might 
end up being a preferred solution!

Initially, I just want to produce a proof of concept which runs at the command 
line (the connection will be implemented as a faceless plug in) and I don't 
want a webview in the UI.  So, that said, I cobbled together the following test:

    //for header
    IBOutlet WebView * webView;
    NSDictionary* pluginPrefs;
    
    
    //for body
    NSString* preferencesFile = [NSHomeDirectory() 
stringByAppendingPathComponent:@"/Desktop/Prefs.plist"];
    
    pluginPrefs = [[NSDictionary alloc] initWithContentsOfFile:preferencesFile];
    
    
    WebFrame *mainFrame = [webView mainFrame];
    NSURL *url = [NSURL URLWithString:[pluginPrefs objectForKey:@"ServerURL"]];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [mainFrame loadRequest:request];    
                  
    id win = [webView windowScriptObject];
    
    NSArray *args = [NSArray arrayWithObjects:
                     @"signIn",
                     [pluginPrefs objectForKey:@"Username"],
                     [pluginPrefs objectForKey:@"Password"],
                     nil];
    
    
    //login (in theory!)
    NSLog(@"Parameters: %@, %@",[pluginPrefs 
objectForKey:@"Username"],[pluginPrefs objectForKey:@"Password"]);
    id result = [win callWebScriptMethod:@"muc.userAuth" withArguments:args];
    if(![result isMemberOfClass:[WebUndefined class]]) 
        NSLog(@"%@", result);
    else
        NSLog(@"Unable to initialize connection");

The code builds correctly, and runs - but, just for starters, the result seems 
to be wrong (it should return 'Unable to initialize connection' as far as I can 
tell), because it always returns the same result whether I have a 'valid' 
javascript function or not.  Of course, once (if!) I get it to connect 
correctly, I then need to solve the problem of capturing the stream of messages 
that will be received in not-quite-real-time. I'll cross that bridge when I 
come to it.

The muc.userAuth function can be found in and external .js file, referenced in 
the page html with the following tag:
<script type="text/javascript" src="../js/ejc.js?ver=2.0.1.1"></script>

I realize that this is a hell of a big query, and I'm not entirely sure that 
I've given enough information for anyone to help answer it.  At the very least, 
I guess I'm hoping for a reference to some really solid documentation on how to 
do what I'm trying to do - the documentation on ADC seems to be a little light 
in this area.

Thanks, and regards,

Geoff_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to