Table of Contents
- Title and Copyright Information
- Preface
- 1 A Developer’s View of Oracle Mobile Hub
- 2 Android Apps
- 3 iOS Applications
- 4 Cordova Applications
- 5 JavaScript Applications
- 6 Xamarin Android Apps
- 7 Xamarin iOS Apps
- 8 Notifications
- 9 My Profile
-
10
Storage
- What Can I Do with Storage?
- Android
- iOS
- Cordova, JavaScript, and TypeScript
- Custom Code
- REST API
- Test Runtime Operations Using the Endpoints Page
- Manage Collections
-
11
Data Offline and Sync
- Building Apps that Work Offline Using Sync Express
-
Building Apps that Work Offline Using the Synchronization Library
- What Can I Do with the Synchronization Library?
- Synchronization Library Process Flow
- Video: Overview of the Data Offline & Synchronization API
- Android Synchronization Library
- iOS Synchronization Library
- Make Custom APIs Synchronizable
-
Synchronization Policies
- Video: Introduction to the Data Offline & Sync Policies
- Synchronization Policy Options
- Video: Deep-Dive into the Data Offline & Sync Policies
- Synchronization Policy Levels and Precedence
- Define Synchronization Policies and Cache Settings in the Configuration File
- Define Synchronization Policies and Cache Settings in a Response Header
- Get Cache Hits and Misses
- How Synchronization Works with the Storage APIs
- 12 Location
- 13 Database
-
14
Analytics
- What Can I Do With Analytics?
- How the Analytics Reports Are Created
- Enable Your Mobile Apps to Report Event Data
- Integrate Analytics into a Mobile App Using the Mobile Client SDK
- Understand Different Types of Analytics Reports
- Access the Analytics Reports
- API Calls Reports
- Events Report
- User and Session Reports
- Improve User Retention with Funnel Analysis
- Create Custom Analytics Reports
- Track Sessions and Log Events for Mobile Apps
- Export Event Data
- Purge Analytics Data
- Troubleshoot Analytics Reports
- 15 Live Experience
- 16 App Policies
-
17
Backends
- What Are Backends and How Can I Use Them?
- What's the Backend Development Process?
- Create and Populate Backends
- Notification Profiles and Client Apps
- What Can I Change in a Backend?
- Connect Your App to a Backend
- 18 Mobile Users and Roles
-
19
Authentication in Mobile Hub
- OAuth Consumer Authentication in Mobile Hub
- HTTP Basic Authentication in Mobile Hub
-
Enterprise Single Sign-On in Mobile Hub
-
Third-Party SAML and JWT Tokens
- SAML Tokens and Virtual Users
-
JWT Tokens and Virtual Users
- Register a JWT Token Issuer in Mobile Hub
- Example: Minimal IdP Configuration
- Example: IdP Configuration with Audience
- Example: IdP Configuration with Audience and Username Attribute
- Associate Roles with a JWT Token
- Convert a JSON Object to One Line
- JWT Configuration Reference
- Obtain a JWT Token Using an Embedded Browser
- Obtain a JWT Token Using a System Browser
- Use a JWT Token to Authenticate with Oracle Mobile Hub
- Code the JWT Token Exchange Manually
- User Mapping from a Third-Party IdP to IDCS
- Browser-Based SSO through Mobile Hub
- Test APIs in a Backend with SSO Login
- Token Expiration for SSO Login
-
Third-Party SAML and JWT Tokens
- Facebook Login in Mobile Hub
- Authentication in Direct REST Calls
- Secure Cross-Site Requests to Oracle Mobile Hub APIs
- 20 The Express API Designer
-
21
Custom API Design
- API Design Process
- Generating Custom APIs for Connectors
- The API Designer
- Spec Out a Custom API
-
Creating a Complete Custom API
- Set Up Your API
- Define Endpoints
- Add Methods to Your Resources
- Define a Request for the Method
- Define a Response for the Method
- Test API Endpoints Using Mock Data
- Provide a Schema
- Security in Custom APIs
- Test Your Custom API
- Create Resource Types
- Create Resource Traits
- Providing API Documentation
- Getting Diagnostic Information
- API Design Considerations
- Edit a Custom API
- Video: End-to-End Custom API Demo
- Troubleshoot Custom APIs
-
22
Implementing Custom APIs
- What Can I Do with Custom Code?
- How Does Custom Code Work?
- Set Up Tooling for Custom Code
- Steps to Implement a Custom API
- Download a JavaScript Scaffold for a Custom API
- Writing Custom Code
- Implementing Synchronization-Compatible APIs
- Call Web Services and APIs from Custom Code
- Package Custom Code into a Module
- Upload the Custom Code Module
- Testing and Debugging Custom Code
-
Troubleshooting Custom API Implementations
- Diagnose Syntax Errors
-
Common Custom Code Errors
- Custom Code Problem parsing JSON: Error: request entity too large
- Custom Code Problem in oracleMobile.rest callback: Argument error, options.body
- Your custom code container is in the process of recovering from an unhandled error in a earlier request
- Connection fails due to untrusted URL
- database.getAll(table, options, httpOptions) doesn’t return all the rows in a table
- This mobile user doesn't have the necessary permissions to call this endpoint
- What Happens When a Custom API Is Called?
-
23
Calling APIs from Custom Code
- Send Requests to Platform, Connector, and Custom APIs
- Common options Properties
- Access Mobile Backend Information from Custom Code
-
Platform APIs
- Analytics Collector API
- App Policies API
- Database Access API
- Location API
-
Location Management API
- location.assets.register(assets, context, httpOptions)
- location.assets.remove(id, context, httpOptions)
- location.assets.update(id, asset, context, httpOptions)
- location.devices.register(devices, context, httpOptions)
- location.devices.remove(id, context, httpOptions)
- location.devices.update(id, device, context, httpOptions)
- location.places.register(places, context, httpOptions)
- location.places.remove(id, context, httpOptions)
- location.places.removeCascade(id, context, httpOptions)
- location.places.update(id, place, context, httpOptions)
- Mobile Devices API
- My Profile API
- Notifications API
-
Storage API
- storage.doesCollectionExist(collectionId, options, httpOptions)
- storage.doesExist(collectionId, objectId, options, httpOptions)
- storage.getAll(collectionId, options, httpOptions)
- storage.getById(collectionId, objectId, options, httpOptions)
- storage.getCollection(collectionId, options, httpOptions)
- storage.getCollections(options, httpOptions)
- storage.remove(collectionId, objectId, options, httpOptions)
- storage.store(collectionId, object, options, httpOptions)
- storage.storeById(collectionId, objectId, object, options, httpOptions)
- Call a Connector API from Custom Code
- Call a Custom API from Custom Code
- Specify the API Version in Calls to Custom and Connector APIs
- Legacy Generic REST Methods
- Learn About Your Instance's Custom, Platform, and Connector APIs
-
24
Connectors
- What Is a Connector API?
-
REST Connector APIs
- How REST Connector APIs Work
- Why Use Connectors Instead of Direct Calls to External Resources?
- Create a REST Connector API
- Security and REST Connector APIs
- Security Policy Types for REST Connector APIs
- CSF Keys and Web Service Certificates
- Query and Header Parameters
- Edit a REST Connector API
- Use Your REST Connector API in an App
- Troubleshoot REST Connector APIs
-
SOAP Connector APIs
- How SOAP Connector APIs Work
- Why Use SOAP Connectors Instead of Direct Calls to External Resources?
- Create a SOAP Connector API
- SOAP Connector API Design Tips
- How Does XML Get Translated into JSON?
- Using XML Instead of JSON
- Security Policy Types for SOAP Connector APIs
- CSF Keys and Web Service Certificates
- Editing a SOAP Connector API
- Use Your Connector API in an App
- Troubleshoot SOAP Connector APIs
- SOAP Connector API Scope
-
ICS Connector APIs
- How ICS Connector APIs Work
- ICS Connector API Flow
- Create an ICS Connector API
- Security and ICS Connector APIs
- CSF Keys
- Use Your Connector API in an App
- Troubleshoot ICS Connector APIs
-
Fusion Applications Connector APIs
- How Fusion Applications Connector APIs Work
- Fusion Applications Connector API Flow
-
Create a Fusion Applications Connector API
- Set the Basic Information for Your Fusion Applications Connector API
- Connect to a Fusion Applications Instance
- Create a Fusion Applications Instance Connection
- Select Fusion Applications Resources
- Set Resource Attributes
- Edit the Fusion Applications Connector API
- Set Runtime Security for the Fusion Applications Connector API
- Test the Fusion Applications Connector API
- Security Policy Types for Fusion Applications Connector APIs
- CSF Keys and Web Service Certificates
- Using Your Fusion Application Connector API in an App
- Troubleshoot Fusion Applications Connector APIs
- 25 Diagnostics
- 26 Packages
- A HTTP Headers
- B Oracle Mobile Hub Policies
- C Security Policies for Connector APIs
- D Write Swift Applications Using the iOS Client SDK
- E Supported Browsers and Languages
- F Identity Provider Integration