View rndemo-Bridging-Header.h
// rndemo rndemo-Bridging-Header.h | |
#import <React/RCTBridgeModule.h> |
View ApproovBridge.m
#import <React/RCTBridgeModule.h> | |
@interface RCT_EXTERN_MODULE(Approov, NSObject) | |
RCT_EXTERN_METHOD(fetchApproovToken:(NSString *)url | |
resolver:(RCTPromiseResolveBlock)resolve | |
rejecter:(RCTPromiseRejectBlock)reject | |
) | |
@end |
View Approov.swift
import Foundation | |
import Approov | |
@objc(Approov) | |
class Approov: NSObject { | |
@objc func fetchApproovToken(_ url: String, | |
resolver resolve: @escaping RCTPromiseResolveBlock, | |
rejecter reject: @escaping RCTPromiseRejectBlock) -> Void { | |
let attestee = ApproovAttestee.shared() |
View native-module-call.js
import {NativeModules} from 'react-native'; | |
NativeModules.Approov.fetchApproovToken(input) | |
.then(token => { | |
// do something useful... | |
}) | |
.catch((error) => { | |
throw error; | |
}); |
View AppFragment.js
import Approov from './Approov'; | |
class App extends React.Component { | |
// unchanged code ommitted for brevity... | |
// get shape | |
getShape = () => { | |
Approov.fetch('https://demo-server.approovr.io/shapes', { |
View Approov.js
import {NativeModules} from 'react-native'; | |
const fetchWithToken = (input, options) => { | |
return NativeModules.Approov.fetchApproovToken(input) | |
.then(token => { | |
let optionsA = (options? {...options, headers:{ ...options.headers}}:{headers: {}}); | |
optionsA.headers['Approov-Token'] = token; | |
return fetch(input, optionsA) | |
.then((response) => { |
View MainApplication.java
package com.rndemo; | |
import ... | |
import com.criticalblue.approov.ApproovPackage; | |
public class MainApplication extends Application implements ReactApplication { | |
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { | |
@Override |
View ApproovPackage.java
package com.criticalblue.approov; | |
import ... | |
public class ApproovPackage implements ReactPackage { | |
@Override | |
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { | |
return Collections.emptyList(); | |
} |
View ApproovModule.java
package com.criticalblue.approov; | |
import ... | |
import com.criticalblue.attestationlibrary.ApproovAttestation; | |
import com.criticalblue.attestationlibrary.ApproovConfig; | |
import com.criticalblue.attestationlibrary.TokenInterface; | |
class ApproovModule extends ReactContextBaseJavaModule { |
View ShapeView.js
import React from "react"; | |
import { View, Image, Text, StyleSheet } from "react-native"; | |
const shapeView = (props) => { | |
const imgSrc = { | |
'logo': require('./assets/approov_largelogo.png'), | |
'hello': require('./assets/hello.png'), | |
'confused': require('./assets/confused.png'), | |
'Rectangle': require('./assets/rectangle.png'), | |
'Square': require('./assets/square.png'), |
NewerOlder