Android Studio QR码扫描仪Zxing。如何在我的应用程序中打开QR码扫描的结果(URL链接)?

时间:2019-01-13 21:15:09

标签: java android qr-code zxing

如何更改HandleResult代码以在应用程序中而不是外部浏览器中打开URL?

我知道我们需要Webview之类的东西,并且布局文件也需要在Webview中。我希望有一个人可以帮助我?我尝试过,但是没有用。

package com.example.beverly.registrationdatabase;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Patterns;

import com.google.zxing.Result;

import me.dm7.barcodescanner.zxing.ZXingScannerView;

public class ScanCodeActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {

    ZXingScannerView ScannerView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ScannerView = new ZXingScannerView(this);
        setContentView(ScannerView);


    }

    @Override
    public void handleResult(Result result) {

        if(Patterns.WEB_URL.matcher(result.getText()).matches()) {
            // Open URL
            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(result.getText()));
            startActivity(browserIntent);
            onBackPressed();
        }
    }

    @Override
    protected void onPause() {
        super.onPause();

        ScannerView.stopCamera();
    }

    @Override
    protected void onResume() {
        super.onResume();

        ScannerView.setResultHandler(this);
        ScannerView.startCamera();
    }
}

2 个答案:

答案 0 :(得分:0)

如果您只是尝试从标准网页访问内容,请考虑通过IOUtils.toString()将内容直接放入字符串中。

答案 1 :(得分:0)

使用webview创建一个新活动。

使用意图将字符串移动到Webview活动,然后从该WebView中打开URL。

    myWebView = (WebView)findViewById(R.id.webView);
            WebSettings webSettings = myWebView.getSettings();
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.getSettings().setLoadWithOverviewMode(true);
            myWebView.getSettings().setUseWideViewPort(true);
            myWebView.getSettings().setDomStorageEnabled(true);

            myWebView.loadUrl(String_from_qr_scan);

不要忘记在清单中添加Internet权限。同样,如果您希望WebView从该网页中导航其他页面,它将打开,那么您还必须重写setWebViewClient()方法。