WebViewJavascriptBridge Changelog
=================================

Release Checklist
-----------------
- gitu-update
- Note Changelog
- Bump `WebViewJavascriptBridge.podspec` version "X.Y.Z"
- gitm-commit "vX.Y.Z"
- gitt-tag "vX.Y.Z"
- pod trunk push

Version History
---------------

Next version
+ Pretty-print json in log messages

v5.0.3
+ Run all tests for both UIWebView and WKWebView webviews/bridges.
+ Allow for calling handlers from JS with just a handler name and responseCallback function (#184).

v5.0.2
+ Fix bug that could cause a crash if the webview loads a new page immediately after JS sends a message.

v5.0.1
+ Removed `WebViewJavascriptBridge -reset`. It should never have been exposed as a public API.
+ Fixed compilation in C99 mode
+ Inline JS source code. WVJB no longer requires `WebViewJavascriptBridge.js.txt` to be included as a resource.
+ Automated testing: see `make test`
+ Added Makefile with common commands
+ Significantly simplified and improved wvjb load detection
+ Simplify API by focusing on explicitly named handlers instead of a default handler and plain `send`.

v4.1.4
+ Improve how WVJB handles the case when there is no ObjC handler for a message received from js.
+ If an objc handler throws and exception, let it bubble up to the webkit engine instead of catching it in WVJB.

v4.1.3
+ Update podspec file with tag

v4.1.2
+ Fix bug: webViewDidStart/FinishLoad were called twice and isLoading was always true (#86)

v4.1.1
+ Better JS initialization script (thank @refractalize!)
+ When passing nil to an objc response callback, replace it with [NSNull null] (becomes null in js)

v4.1.0
+ Allow for sending null/nil data packets
+ Drop support for JSONKit
+ Clean up internal represenation of messages

v4.0.2
+ Fix NSInvalidArgumentException: "attempt to insert nil object" when using shorthand -callHandler:
+ Fix sending messages including __WVJB_MESSAGE_SEPERATOR__ string

v4.0.1
+ Fix detection of arc_weak support

v4.0.0
+ Consolidate platform-specific code into a single WebViewJavascriptBridge.m/h using macros (57ee322a4c5310eadd28b28f4d8522cd54123301)
+ Bugfix: Don't make navigation decisions for webviews we don't control (254ea00267f8c1e03727885f4e1e0fd5f5c78be8)

v3.1.0
+ Dont inject the WVJB bridge until all requests have finished loading (61b853)
+ Add podspec file (818d49cfc)
+ Memory leaks fixed (b06988f1, 20ce1b0b)
+ New major contributor @peyton!

v3.0.0
+ OSX Support
+ New major contributor @oakho!

v2.1.2
+ Copy handler and response blocks

v2.1.1
+ Handle edge cases gracefully (e.g. don't crash on unknown command or unexpected response)

v2.1.0
+ Remove WVJBResponse object and the notion of responding with an error. See 4ab41bb4d7.

v2.0.0
+ Messages are objects instead of strings. Supports NSDictionary*/Objects, NSArray*/Arrays, NSNumber*/Number & NSString*/String.
+ Messages are encoded with NSJSONSerialization. Optional fallback to JSONKit for iOS 4 support.
+ Messages can expect responses. A message received with an expected response is accompanied by a WVJBResponse* object.
+ Handlers can be registered by name, and called with data and an optional expected response.
+ Responses expect either an error or data (`-(void)respond:(id)data`, -(void)respondWithError:(id)error)

v0.0.1
+ ObjC: A WebViewJavascriptBridge class (a UIWebViewDelegate) that enables message passing to and from the JS
+ ObjC: A protocol called WebViewJavascriptBridgeDelegate that lets you handle messages received from the JS
+ JS: Event when the bridge is ready - document.addEventListener('WebViewJavascriptBridgeReady', function() {}, false)
+ JS: Ability to set your message handler - WebViewJavascriptBridge.setMessageHandler(function() {})
+ JS: Function to send messages - WebViewJavascriptBridge.sendMessage('a message');
+ All messages are strings. Use JSON in your js and e.g. JSONKit in iOS to send structured messages
