我想在QR码扫描(Android Studio Zxing扫描仪)后重定向到网页,在按下buttontoast的扫描代码后,它重定向到URL,但是我想重定向而无需按下按钮自动更改扫描。
不知道将URL放在何处以进行重定向:
mWebView.loadUrl("https://example.com/d2.aspx?name=" + MainActivity.resulttextview.getText());
使用(网络视图)
@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());
}
});
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
答案 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中处理发送的结果。希望对您有所帮助。