Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'react-native-device-info' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
const preventNoise = (): void => {
/* Sentry should not normally be used in debug mode. (For one thing, the
debug-mode build process doesn't ordinarily create bundles or .map files,
so you'll probably get nonsensical stack traces.) */
if (process.env.NODE_ENV === 'development' && config.sentryKey !== null) {
/* If you have some reason to initialize Sentry in debug mode anyway, please
change the app's version name (currently specified in `ios/Info.plist`
and/or `android/app/build.gradle`) to something that doesn't look like a
normal version number -- preferably with your name and/or Github ID in
it. This will allow events produced by these debug builds to be easily
identified in the Sentry console. */
if (DeviceInfo.getVersion().match(/^\d+\.\d+\.\d+$/)) {
throw new Error('Sentry should not be initialized in debug builds');
}
}
/* Jest has no reason to even _try_ to initialize Sentry, even if `sentryKey`
is `null`. */
// (See the following links concerning detecting Jest.)
// [1] https://jestjs.io/docs/en/24.0/getting-started.html#using-babel
// [2] https://stackoverflow.com/a/52231746
if (process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined) {
throw new Error('Sentry must not be initialized during testing!');
}
};
logError(
moduleName: ModulesNames,
pageName: string,
functionName: string,
error: any,
extra: { [key: string]: string } = {},
) {
const meta = {
device: `${DeviceInfo.getModel()}-${DeviceInfo.getSystemVersion()}`,
...extra,
};
const data = {
[`${functionName}_error`]: `${JSON.stringify(
meta,
)}-${this.serializeObject(error)}`,
};
if (__DEV__) {
// tslint:disable-next-line
console.log(`${moduleName}_${pageName}_${functionName}_error:`, error);
}
Analytics.trackEvent(`${moduleName}_${pageName}`, data);
}
}
ModuleConfig.gaTrackingId = 'UA-110176262-1';
ModuleConfig.init();
ModuleConfig.setLogo(require('../images/logo.png')); // eslint-disable-line global-require
ModuleConfig.setNavLogo(require('../images/logo.png')); // eslint-disable-line global-require
ModuleConfig.setFilterRooms([
'support', 'exceptions',
]);
// set user agent
let ua = ModuleConfig.appName;
try {
// Build user agent string
ua = `${ModuleConfig.appName} ` +
`${DeviceInfo.getVersion()}; ${DeviceInfo.getSystemName()} ` +
`${DeviceInfo.getSystemVersion()}; ${DeviceInfo.getBrand()} ` +
`${DeviceInfo.getDeviceId()}`;
} catch (e) {
// do nothing
}
AppAPI.setUserAgent(ua);
},
ModuleConfig.bootstrapUrl = 'roverz.mongrov.com';
ModuleConfig.gaTrackingId = 'UA-110176262-1';
ModuleConfig.init();
ModuleConfig.setLogo(require('../images/logo.png')); // eslint-disable-line global-require
ModuleConfig.setNavLogo(require('../images/logo.png')); // eslint-disable-line global-require
ModuleConfig.setFilterRooms([
'support', 'exceptions',
]);
// set user agent
let ua = ModuleConfig.appName;
try {
// Build user agent string
ua = `${ModuleConfig.appName} ` +
`${DeviceInfo.getVersion()}; ${DeviceInfo.getSystemName()} ` +
`${DeviceInfo.getSystemVersion()}; ${DeviceInfo.getBrand()} ` +
`${DeviceInfo.getDeviceId()}`;
} catch (e) {
// do nothing
}
AppAPI.setUserAgent(ua);
},
static getCurrentLanguage() {
// Get current language
var DeviceInfo = require('react-native-device-info');
var lang = DeviceInfo.getDeviceLocale();
if (lang.includes('-')) {
// Simplify -> ja-US to ja only
lang = lang.split('-').slice(0, -1);
// Basic filter
switch (lang[0]) {
case 'cs':
case 'de':
case 'en':
case 'es':
case 'fr':
case 'ja':
case 'pl':
case 'pt':
case 'ru':
case 'th':
case 'tr':
componentDidMount() {
console.log("Device Unique ID", DeviceInfo.getUniqueID()); // e.g. FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9
// * note this is IDFV on iOS so it will change if all apps from the current apps vendor have been previously uninstalled
console.log("Device Manufacturer", DeviceInfo.getManufacturer()); // e.g. Apple
console.log("Device Model", DeviceInfo.getModel()); // e.g. iPhone 6
console.log("Device ID", DeviceInfo.getDeviceId()); // e.g. iPhone7,2 / or the board on Android e.g. goldfish
console.log("Device Name", DeviceInfo.getSystemName()); // e.g. iPhone OS
console.log("Device Version", DeviceInfo.getSystemVersion()); // e.g. 9.0
console.log("Bundle Id", DeviceInfo.getBundleId()); // e.g. com.learnium.mobile
console.log("Build Number", DeviceInfo.getBuildNumber()); // e.g. 89
console.log("App Version", DeviceInfo.getVersion()); // e.g. 1.1.0
console.log("App Version (Readable)", DeviceInfo.getReadableVersion()); // e.g. 1.1.0.89
console.log("Device Name", DeviceInfo.getDeviceName()); // e.g. Becca's iPhone 6
console.log("User Agent", DeviceInfo.getUserAgent()); // e.g. Dalvik/2.1.0 (Linux; U; Android 5.1; Google Nexus 4 - 5.1.0 - API 22 - 768x1280 Build/LMY47D)
ModuleConfig.brand = 'mongrov.com';
ModuleConfig.bootstrapUrl = 'roverz.mongrov.com';
ModuleConfig.gaTrackingId = 'UA-110176262-1';
ModuleConfig.init();
ModuleConfig.setLogo(require('../images/logo.png')); // eslint-disable-line global-require
ModuleConfig.setNavLogo(require('../images/logo.png')); // eslint-disable-line global-require
ModuleConfig.setFilterRooms([
'support', 'exceptions',
]);
// set user agent
let ua = ModuleConfig.appName;
try {
// Build user agent string
ua = `${ModuleConfig.appName} ` +
`${DeviceInfo.getVersion()}; ${DeviceInfo.getSystemName()} ` +
`${DeviceInfo.getSystemVersion()}; ${DeviceInfo.getBrand()} ` +
`${DeviceInfo.getDeviceId()}`;
} catch (e) {
// do nothing
}
AppAPI.setUserAgent(ua);
},
console.log("Device Name", DeviceInfo.getSystemName()); // e.g. iPhone OS
console.log("Device Version", DeviceInfo.getSystemVersion()); // e.g. 9.0
console.log("Bundle Id", DeviceInfo.getBundleId()); // e.g. com.learnium.mobile
console.log("Build Number", DeviceInfo.getBuildNumber()); // e.g. 89
console.log("App Version", DeviceInfo.getVersion()); // e.g. 1.1.0
console.log("App Version (Readable)", DeviceInfo.getReadableVersion()); // e.g. 1.1.0.89
console.log("Device Name", DeviceInfo.getDeviceName()); // e.g. Becca's iPhone 6
console.log("User Agent", DeviceInfo.getUserAgent()); // e.g. Dalvik/2.1.0 (Linux; U; Android 5.1; Google Nexus 4 - 5.1.0 - API 22 - 768x1280 Build/LMY47D)
const {navigator} = this.props;
storge.load({
key:'AppVersion',
autoSync:true,
}).then(ret =>{
version = ret.AppVersion;
console.log(JSON.stringify(version))
}).catch(err => {
// 如果没有找到数据且没有同步方法,
// 或者有其他异常,则在catch中返回
console.warn(err);
})
this.timer = setTimeout(()=> {
if (!pushManager.hasAllTokens) {
log('Cannot update tokens yet because they are still loading');
return;
}
console.log('Have device and tokens, will compare to stored server answer');
// this needs to understand what to do with multiple tokens
const jsonTokens = JSON.stringify(pushManager.tokens);
log('Server has: ', device.pushToken);
if (jsonTokens !== device.pushToken) {
log('Sending tokens to the server: ', jsonTokens);
this.props.updateDevice({
token: jsonTokens,
name: DeviceInfo.getDeviceName(),
}).then(() => {
log('Token update was successful');
}).catch((err) => {
log('Token update failed: ', err);
});
} else {
log('Not sending tokens to the server');
}
}
/* @flow */
import DeviceInfo from 'react-native-device-info';
import {Analytics, Hits as GAHits} from 'react-native-google-analytics';
import appPackage from '../../../package.json'; // eslint-disable-line import/extensions
const splitRegExp = /[\.-]/i;
const VERSION = appPackage.version || 'dev.dev.dev-dev';
const [major, minor, patch, build] = VERSION.split(splitRegExp);
const patchPart = parseInt(patch) === 0 ? '' : `.${patch}`;
export const VERSION_STRING = `${major}.${minor}${patchPart} (build ${build})`;
export const USER_AGENT = `YouTrackMobile/${major}.${minor}${patchPart} (${DeviceInfo.getBrand()} ${DeviceInfo.getSystemName()} ${DeviceInfo.getSystemVersion()})`;
const googleAnalyiticsId = appPackage.config.ANALYTICS_ID;
let isAnalyticsEnabled = false;
const clientId = DeviceInfo.getUniqueID();
const ga = new Analytics(googleAnalyiticsId, clientId, 1, DeviceInfo.getUserAgent());
const usage = {
init(statisticsEnabled: boolean) {
isAnalyticsEnabled = statisticsEnabled;
},
trackScreenView(screenName: string) {
if (!isAnalyticsEnabled) {
return;