【发布时间】:2020-09-26 11:08:41
【问题描述】:
我在网上找到了一个用于为 Android 创建 QR 码扫描仪应用程序的教程。它工作得很好,但扫描的输出是一个 toast 通知,正如您在代码中看到的那样:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (resultCode == Activity.RESULT_OK) {
val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data)
if (result != null) {
if (result.contents == null) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show()
} else {
Toast.makeText(this, "Scanned: " + result.contents, Toast.LENGTH_LONG).show()
}
} else {
super.onActivityResult(requestCode, resultCode, data)
}
}
}
}
我想做的是让扫描的代码在应用程序本身内启动 url。由于我希望将页面托管在应用程序本身中,因此我所做的是使用加载内部 html 页面的 webview 创建一个活动。
我获取了扫描仪代码并更改了正面结果以打开 webview 活动:
startActivity(Intent(this, PagInfoActivity::class.java))
效果很好。每当检测到二维码时,应用程序都会自动加载所需的活动。我知道这并不理想,因为 QR 码链接本身并未用于打开页面,但我试图做的是在 webview 加载时使用该扫描结果。我用文本字符串而不是 URL 创建了 QRCode,这样我就可以将它们注入到 webview 的 loadURL 中,如下所示:
WebView.loadUrl("file:///android_asset/*QRCODE string*.html");
是否可以从 MainActivity 调用result.contents?
【问题讨论】:
标签: java android android-activity