Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

react-native-smart-barcode

npmnpmnpmnpm

A smart barcode scanner component for React Native app. The library uses https://github.com/zxing/zxing to decode the barcodes for android, and also supports ios.

Preview

react-native-smart-barcode-preview-ios

Installation

npm install react-native-smart-barcode --save

Notice

It can only be used greater-than-equal react-native 0.4.0 for ios, if you want to use the package less-than react-native 0.4.0, use npm install react-native-smart-barcode@untilRN0.40 --save

Installation (iOS)

  • Drag RCTBarCode.xcodeproj to your project on Xcode.

  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBarCode.a from the Products folder inside the RCTBarCode.xcodeproj.

  • Look for Header Search Paths and make sure it contains $(SRCROOT)/../../../react-native/React as recursive.

  • Dray raw folder to your project

  • Add Privacy - Camera Usage Description property in your info.plist(for ios 10)

Installation (Android)

  • In android/settings.gradle
...
include ':react-native-smart-barcode'
project(':react-native-smart-barcode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-barcode/android')
  • In android/app/build.gradle
...
dependencies {
...
// From node_modules
compile project(':react-native-smart-barcode')
}
  • In MainApplication.java
...
private ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
public void setReactNativeHost(ReactNativeHost reactNativeHost) {
mReactNativeHost = reactNativeHost;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
...
  • In MainActivity.java
...
import com.reactnativecomponent.barcode.RCTCapturePackage; //import RCTCapturePackage
...
@Override
protected void onCreate(Bundle savedInstanceState) {
MainApplication application = (MainApplication) this.getApplication();
application.setReactNativeHost(new ReactNativeHost(application) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RCTCapturePackage(MainActivity.this) //register Module
);
}
});
super.onCreate(savedInstanceState);
}
  • In AndroidManifest.xml, add camera permissions
...
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
...

Full Demo

see ReactNativeComponentDemos

Usage

Install the package from npm with npm install react-native-smart-barcode --save. Then, require it from your app's JavaScript files with import Barcode from 'react-native-smart-barcode'.

importReact,{Component,}from'react'import{View,StyleSheet,Alert,}from'react-native'importBarcodefrom'react-native-smart-barcode'importTimerEnhancefrom'react-native-smart-timer-enhance'classBarcodeTestextendsComponent{// 构造constructor(props){super(props);// 初始状态this.state={viewAppear: false,};}render(){return(<Viewstyle={{flex: 1,backgroundColor: 'black',}}>{this.state.viewAppear ? <Barcodestyle={{flex: 1,}}ref={component=>this._barCode=component}onBarCodeRead={this._onBarCodeRead}/> : null}</View>)}componentDidMount(){letviewAppearCallBack=(event)=>{this.setTimeout(()=>{this.setState({viewAppear: true,})},255)}this._listeners=[this.props.navigator.navigationContext.addListener('didfocus',viewAppearCallBack)]}componentWillUnmount(){this._listeners&&this._listeners.forEach(listener=>listener.remove());}_onBarCodeRead=(e)=>{console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)this._stopScan()Alert.alert(e.nativeEvent.data.type,e.nativeEvent.data.code,[{text: 'OK',onPress: ()=>this._startScan()},])}_startScan=(e)=>{this._barCode.startScan()}_stopScan=(e)=>{this._barCode.stopScan()}}exportdefaultTimerEnhance(BarcodeTest)

Props

PropTypeOptionalDefaultDescription
barCodeTypesarrayYesdetermines the supported barcodeTypes
scannerRectWidthnumberYes255determines the width of scannerRect
scannerRectHeightnumberYes255determines the height of scannerRect
scannerRectTopnumberYes0determines the top shift of scannerRect
scannerRectLeftnumberYes0determines the left shift of scannerRect
scannerLineIntervalnumberYes3000determines the interval of scannerLine's movement
scannerRectCornerColorstringYes#09BB0Ddetermines the color of scannerRectCorner

About

A smart barcode scanner component for React Native app.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages