mirror of
https://github.com/simplezhli/flutter_barcode_reader.git
synced 2024-12-23 21:19:21 +08:00
Merge pull request #168 from AreaSeys-Team/master
Supporting add-to-app feature
This commit is contained in:
commit
0a25923ae2
@ -2,30 +2,29 @@ package com.apptreesoftware.barcodescan
|
|||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.util.Log
|
||||||
|
import io.flutter.plugin.common.MethodCall
|
||||||
import io.flutter.plugin.common.MethodChannel
|
import io.flutter.plugin.common.MethodChannel
|
||||||
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
|
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
|
||||||
import io.flutter.plugin.common.MethodChannel.Result
|
import io.flutter.plugin.common.MethodChannel.Result
|
||||||
import io.flutter.plugin.common.MethodCall
|
|
||||||
import io.flutter.plugin.common.PluginRegistry
|
import io.flutter.plugin.common.PluginRegistry
|
||||||
import io.flutter.plugin.common.PluginRegistry.Registrar
|
import io.flutter.plugin.common.PluginRegistry.Registrar
|
||||||
|
|
||||||
class BarcodeScanPlugin(val activity: Activity): MethodCallHandler,
|
class BarcodeScanPlugin(private val registrar: Registrar) : MethodCallHandler, PluginRegistry.ActivityResultListener {
|
||||||
PluginRegistry.ActivityResultListener {
|
var result: Result? = null
|
||||||
var result : Result? = null
|
|
||||||
companion object {
|
companion object {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun registerWith(registrar: Registrar): Unit {
|
fun registerWith(registrar: Registrar) {
|
||||||
val channel = MethodChannel(registrar.messenger(), "com.apptreesoftware.barcode_scan")
|
val channel = MethodChannel(registrar.messenger(), "com.apptreesoftware.barcode_scan")
|
||||||
if (registrar.activity() != null) {
|
val plugin = BarcodeScanPlugin(registrar)
|
||||||
val plugin = BarcodeScanPlugin(registrar.activity())
|
|
||||||
channel.setMethodCallHandler(plugin)
|
channel.setMethodCallHandler(plugin)
|
||||||
registrar.addActivityResultListener(plugin)
|
registrar.addActivityResultListener(plugin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override fun onMethodCall(call: MethodCall, result: Result): Unit {
|
override fun onMethodCall(call: MethodCall, result: Result) {
|
||||||
if (call.method.equals("scan")) {
|
if (call.method == "scan") {
|
||||||
this.result = result
|
this.result = result
|
||||||
showBarcodeView()
|
showBarcodeView()
|
||||||
} else {
|
} else {
|
||||||
@ -34,8 +33,12 @@ class BarcodeScanPlugin(val activity: Activity): MethodCallHandler,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun showBarcodeView() {
|
private fun showBarcodeView() {
|
||||||
val intent = Intent(activity, BarcodeScannerActivity::class.java)
|
if (registrar.activity() == null) {
|
||||||
activity.startActivityForResult(intent, 100)
|
Log.e("BarcodeScanPlugin", "plugin can't launch scan activity, because plugin is not attached to any activity.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val intent = Intent(registrar.activity(), BarcodeScannerActivity::class.java)
|
||||||
|
registrar.activity().startActivityForResult(intent, 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(code: Int, resultCode: Int, data: Intent?): Boolean {
|
override fun onActivityResult(code: Int, resultCode: Int, data: Intent?): Boolean {
|
||||||
|
Loading…
Reference in New Issue
Block a user