- Migrate to Swift 5 and Xcode 10.2
- Remove ELLog dependency
- Add a target that builds a static framework for iOS platform.
- Update to Xcode 9.3 recommended project settings
- Fix Xcode 9.3 warnings
- Expose
didCreateJavaScriptContext
to Obj-C. Fixes an issue in Swift 4 that was preventing didCreateJavaScriptContext from being called which resulted in the JS API never being added to the web view's JS context.
- Migrate to Swift 4
- Use
overCurrentContext
presentation style when presenting modal views
- Use safe area layout guide for web view
- Use default settings for bitcode
- Make JSValue helpers public.
- Update all hybrid APIs to export to JS properly after Swift 3 migration mistakenly converted the APIs to be wrongly exported
- Update
didCreateJavaScriptContext
signature to work with Swift 3. Fixes an issue that was preventing the Hybrid API object from being injected into theJSContext
.
- Fixed failing unit tests that started failing after migrating to Swift 3
- Make
sharedLogger
API public
- Migrated to Swift 3
- Simplify logging code by removing unnecessary ELHybridWeb class
- Removed dead logging code
- Removed ELJSBridge as a dependency
- Enable dependencies to be installed via Carthage
- Added support for Xcode 8, Swift 2.3, and iOS SDK 10
- Updated to be compatible with Swift 2.2.
- Added logging API
- Changed to auto-layout constraints to fix issue with modal web view being blank
- Add missing bundle identifier to project file
- Fix for
popToRoot()
- Updated to support Swift 2 and iOS SDK 9
BarButton
now explicitly inherits fromNSObject
- Declare all API export protocols in
HybridAPI
class declaration - The
webViewController(webViewController: WebViewController, didFailLoadWithError error: NSError?)
method of the protocolWebViewControllerDelegate
has been changed to pass an optionalNSError
type in order to adapt toUIWebViewDelegate
'sdidFailLoadWithError
method now passing an optional error value.
- track disappearance cause when popping to root to prevent web view from going back
- Run
view.show()
on the main thread.
- Prevent multiple alert views from displaying while an alert view is currently visible
- Keep reference to dialog API's alert view so the delegate can be set to nil. Fixes a crash on iOS 7.
- Use auto-layout to pin sides of web view
- Added
WebViewManager
to propogate JS context creation events to registered web views. Fixes an issue that was causing the didCreateContext method to clash with another bridge's implementation - Allow
NSURLSessionDelegate
to perform default handling of an auth challenge whenchallengeHost
does not match - Change to
NSURL
'sabsoluteString
method in order to support pre iOS 8 - Check for a valid options value before attempting to reference the value's properties
- Added support for server trust challenge
- Change to use
boldSystemFontOfSize()
in order to support iOS 7 - Added support for custom User Agent header
- Change to not invoke
onAppear
callback at the time the callback function is set - Change to use
NSURLSession
to load web view request - Change to use
safelyCallWithData()
to invoke dialog action callback - Hide web view when displaying error UI
- Ignore the query string when matching external URLs against the
returnURL
value. Fixes #56 - Added optional
title
parameter topresentExternalURL()
- Moved the decision logic for intercepting external requests to
didInterceptRequest:
method - Updated
presentExternalURL()
method to use options hash object instead of function parameters - Added
returnURL
parameter topresentExternalURL()
for intercepting matching requests and returning to original web view - Added
presentExternalURL()
anddismissExternalURL()
for transitioning to external web pages and back - Check for
null
andundefined
before using navigation bar buttons in web controller options - Allow
null
to be passed as first item in nav bar buttons array to avoid setting left button - Added
newState()
method that allows web to explicitly create a new bridge API object - Stop loading and set web view delegate when disappearing from back button tap/pop
- Added unit tests for view and tab bar APIs
- Prevent onAppear from running after the view is popped
- Hide web view when popping as a result of navbar back press
- Publicly expose
appearedFrom
anddisappearedBy
as read only - Added
safelyCallWithArguments
function to fix deadlocks with JS callbacks. - Removed dispatch_async calls and switched to safelyCallWithArguments()
- Added navigation bar options and onAppear callback to presentModal
- Filtered out undefined and null values when setting onAppear and onBack callbacks of a new web view controller
- Use asValidValue to check for undefined before invoking JSValue callback
- Change to not automatically show web view when popping view controllers
- Use JSValue to strongly retain appearance callbacks
- Added callback to presentModal/animateForward API for handling native back button
- Set appearance callbacks on main thread only when needed
- Removed dispatches here as they caused lockups. Angelo to replace with safer method soon.
- Removed dispatch_async to main thread in hybrid view.appeared since this is always on the main thread
- Change to not set
parentViewController
reference of Hybrid APIs inviewWillAppear:
- Change to not affect web history when popping back in native navigation
- Added options to
animateForward()
for configuring the next view's nav bar and appear callback - Added options to
presentModal()
for configuring the modal view's nav bar and appear callback - Added callback
animateForward
andpresentModal
for referencing the next view's bridge API object - Added
asValidValue
for creating an optional from and undefined or nullJSValue
- Refactor dialog API to use
UIAlertView
for iOS 7 compatibility. Fixes #43 - Added fresh bridge API object to context after animateForward/presentModal
- Change to only call
nativeBridgeReady
callback when defined - Added method to allow customization of web view requests
- Change to set and run appearance callbacks on the main thread
- Use bridgeObject reference to call appearance APIs
- Do not set owner of managed JS value so callback is released when garbage collected
- Weakly store bridge API reference to set parent vc
- Track both appearance and disappearance states in order to configure web view properly after dismissModal/animateBackward transitions. Fixes #39.
- Added
didCreateJavaScriptContext
in order to add bridge scripts prior to page load - Prevent error display on tab bar double tap
- Added
tabBarHidden
option to navigation API'sanimateForward()
method. Fixes #28. - Added new
pushWebViewController
method withhideBottomBar
option - Added hide/show tab bar API. Fixes #31
- Make
showWebView()
public - Added
popToRoot()
method in navigation API. Fixes #32 - Wait for view.show() bridge call to unhide web view after
animateForward()
andpresentModal()
. Fixes #30. You must now explicitly callview.show()
to show the web view after a call tonavigation.animateForward()
ornavigation.presentModal()
. - Removed delay before showing web view
- Update
WebViewController
to trigger onAppear/onDisappear JS callbacks. Fixes #29 - Added
onAppear
andonDisappear
JS callbacks to view API - Added view API with show() method for unhiding web view
- Added
info()
hybrid API method for getting device information. - Added noframeworks check to add compile by source compatibility
- Added unit test for initializing
WebViewController
subclasses - Update
WebViewController
initializer to be designated - Added
JSValue
extension method for safely converting string values - Pass errors back to
dialog()
callback when missing required options parameters
WebViewController
now usesdynamicType
when spawning new web view controllers instances in order to support subclassed types.- Avoid goBack in web history when
animateBackward
is called. Fixes #16 - Track the web view's first completed loading cycle. Fixes #15, a bug that was causing the web view to remain in a hidden state after making
presentModal()
andanimateForward()
bridge calls.
- Default to presenting modal from tab bar controller if one exists when calling
presentModal()
- Avoid going back in web history after dismissing a modal view controller with
dismissModal()
. Fixes #11. - Navigation bar items are removed when
null
or empty array is passed tosetButtons
from JS. Fixes #9. - Propagate hybrid API's
parentViewController
change to navigation bar API. Fixes #10. - Add error UI with customizable label and reload button to
WebViewController
. - Retain web view base URL when loading web view controller
- Added
popToRootWebViewController
method for popping nav controller of web view to root - Added
presentModal()
anddismissModal()
JS methods for navigating modal web views - Addded
presentModalWebViewController
method toWebViewController
for animating modal transitions
- Added
WebViewControllerDelegate
protocol for working withWebViewController
loading events - Added
delegate
property toWebViewController
- Added navigation bar API. Fixes #5.
- Removed
updatePageState()
API method. Use navigation bar API to set page title now. - Set
goBackInWebViewOnAppear
for web pushes only in order to fix navigation inconsistencies with native transitions - Fixed issue with flashes on back, memory usage being excessive, and Z-order issues. Fixes #4.
- Lazy load web view so the delegate is set after web view initialization. Fixes an issue with UIWebView delegate method not being called.
- Removed click delay in web view taps. Fixes #3.
- Added unit tests for web view controller delegate methods
- Added support for installation via Carthage