简体   繁体   English

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

[英]Android Studio Zxing Scanner, how to redirect to web page after qr code scan automatically (Webview)

I would like redirect to web page after QR code scan (Android Studio Zxing Scanner), after scan code when I press buttontoast, it is redirect to an URL, but I want to redirect without button press automatically alter scan.我想在二维码扫描后重定向到 web 页面(Android Studio Zxing 扫描仪),当我按下 buttontoast 扫描代码后,它被重定向到 URL,但我想重定向而不按下按钮自动改变扫描。

No idea where to place the URL for redirect:不知道在哪里放置 URL 以进行重定向:

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

Using (Webview)使用(网络视图)

MainActivity.java 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:扫码活动.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

If you want to open the url directly when you scan a Qr code, add your logic in the handle result method like this:如果您想在扫描二维码时直接打开 url,请在处理结果方法中添加您的逻辑,如下所示:

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

This will open link in any browser installed on phone.这将在手机上安装的任何浏览器中打开链接。 If you want to specifically open a link in webview inside your application, call startActivityForResult in MainActivity, set result in ScanCodeActivity after you detect the URL and handle the sent result in OnActivityResult in MainActivity.如果你想在你的应用程序中专门打开webview中的链接,在MainActivity中调用startActivityForResult,在检测到URL后在ScanCodeActivity中设置结果,并在MainActivity中的OnActivityResult中处理发送的结果。 I hope this might help you.我希望这可以帮助你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM