【发布时间】:2018-01-14 16:34:14
【问题描述】:
我在我的应用中使用 Zxing Android Embedded (https://github.com/journeyapps/zxing-android-embedded)。
为了启动意图,我做了一个 js 调用:
@JavascriptInterface
public void scan(String redirectUrl) {
IntentIntegrator integrator = new IntentIntegrator((Activity)mContext);
integrator.setOrientationLocked(false);
integrator.setCaptureActivity(SmallCaptureActivity.class);
integrator.setBeepEnabled(false);
if (redirectUrl != null) {
Log.e("redirectUrl", redirectUrl);
integrator.createScanIntent().putExtra("redirectUrl", redirectUrl); // this doesn't work
integrator.addExtra("redirectUrl", redirectUrl); // this doesn't work
}
integrator.setPrompt("");
integrator.initiateScan();
}
在我的 MainActivity 中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
for (String key : bundle.keySet()) {
Object value = bundle.get(key);
Log.e("Tag", String.format("%s %s (%s)", key,
value.toString(), value.getClass().getName()));
}
}
}
我的 onActivityResult 中没有收到任何额外内容。
有什么意义?
【问题讨论】:
-
getIntent() 似乎是错误的。应该类似于 result.getXXX()
-
不幸的是,结果是一个 IntentResult 并且不提供任何方法来接收额外的,也不提供原始意图:github.com/zxing/zxing/blob/master/android-integration/src/main/…
-
在使用
IntentResult时,您错过了什么extra。你想要什么信息?如果您想使用“本机”结果,请访问您的onActivityResult中的data变量