Android Studio Zxing扫描仪,如何在二维码自动扫描后重定向到网页(Webview)

时间:2020-06-01 22:33:21

标签: android webview qr-code zxing

我想在QR码扫描(Android Studio Zxing扫描仪)后重定向到网页,在按下buttontoast的扫描代码后,它重定向到URL,但是我想重定向而无需按下按钮自动更改扫描。

不知道将URL放在何处以进行重定向:

mWebView.loadUrl("https://example.com/d2.aspx?name=" + MainActivity.resulttextview.getText());

使用(网络视图)

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    resulttextview = findViewById(R.id.barcodetextview);
    scanbutton = findViewById(R.id.buttonscan);
    buttontoast = findViewById(R.id.buttontoast);

    mWebView = (WebView) findViewById(R.id.activity_main_webview);

    scanbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(getApplicationContext(), ScanCodeActivity.class));

        }
    });

    buttontoast.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this, resulttextview.getText(), Toast.LENGTH_SHORT).show();

            mWebView.loadUrl("https://example.com/d2.aspx?name=" + MainActivity.resulttextview.getText());

        }
    });

ScanCodeActivity.java:

public class ScanCodeActivity extends Activity implements ZXingScannerView.ResultHandler {

    int MY_PERMISSIONS_REQUEST_CAMERA=0;

    ZXingScannerView scannerView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        scannerView = new ZXingScannerView(this);
        setContentView(scannerView);
    }


    @Override
    public void handleResult(Result result) {

        MainActivity.resulttextview.setText(result.getText());

        onBackPressed();
    }

    @Override
    protected void onPause() {
        super.onPause();
        scannerView.stopCamera();
    }

    @Override
    protected void onPostResume() {
        super.onPostResume();
        if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CAMERA)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA},
                    MY_PERMISSIONS_REQUEST_CAMERA);
        }
        scannerView.setResultHandler(this);
        scannerView.startCamera();
    }
}



enter code here

1 个答案:

答案 0 :(得分:0)

如果要在扫描Qr代码时直接打开url,请在处理结果方法中添加逻辑,如下所示:

@Override
public void handleResult(Result result) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("https://google.com"));
    startActivity(intent)
}

这将在手机上安装的任何浏览器中打开链接。如果要专门在应用程序内的webview中打开链接,请在MainActivity中调用startActivityForResult,在检测到URL后在ScanCodeActivity中设置结果,并在MainActivity中的OnActivityResult中处理发送的结果。希望对您有所帮助。

相关问题