if (self.args[@"allowZoom"] isEqual:@YES)

No need to check if it's not nil (sending a message to nil returns nil and is an integral part of how ObjC works).
Also we can use true/false in the json, which results in an NSNumber (initialized as a bool) (you can't save a BOOL in an array since it's not an object, bummer:/)

Double check that the above code is correct, haven't tried it. Then again you could do:

if ([self.args[@"allowZoom"] boolValue])

Which actually would be better and simpler code, so I would suggest that version. Then we could shorten all of that into:

self.webview.scalesPageToFit = [self.args[@"allowZoom"] boolValue];

(if self is nil, we return nil, i.e. false, if args is nil, same thing, if no @"allowZoom" NSDictionary returns nil, same result, and if boolValue returns nil, false, and if there's an NSNumber that is true in there boolValue returns true (actually it returns YES, or 1 if you will)).