我想编写一个用于扫描条形码的本机模块,但是如果不向MainActivity添加方法,我就很难找到处理结果的方法。修改MainActivity并不是一个好主意,因为对于编写javascript来使用该模块的应用程序开发人员来说,这不是一件容易的事。 例如,如果我使用ZXing Android Embedded:https://github.com/journeyapps/zxing-android-embedded,我必须向MainActivity添加一个方法来处理结果。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null) {
if(result.getContents() == null) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show();
}
} else {
// This is important, otherwise the result will not be passed to the fragment
super.onActivityResult(requestCode, resultCode, data);
}
}
这就产生了一个问题,即使用此模块的任何人都必须修改其MainActivity,这意味着该模块很难使用。那么,有什么想法可以解决这个问题吗?
答案 0 :(得分:0)
您可以只使用react-native-rn-zxing:
npm i react-native-rn-zxing
然后将其链接:
react-native link react-native-rn-zxing
享受