2025-04-19 15:05:22 +08:00

107 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
---------------
v5.1.1
+ Swift unit tests and examples
+ Implement removeHandler
v5.1.0
+ A single instantiation function for all webview types.
+ Improved test runner.
+ New instructions & templates for github issues and pull requests.
v5.0.5
+ 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.3 & v5.0.4
+ Recalled builds :)
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