**见修复底部以下问题**加载扫描QR网址到Android的WebView中
确定一切正常,除了加载的URL,当它试图将URL加载到web视图它在超链接前添加url:例如:url:http://google.com,webview不会加载这个当然。我试过.replace(“url:”,“”)和.replaceAll(“url:”,“”)没有成功。 SCAN_RESULT使用zbar条码库生成。
主要活动
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case ZBAR_SCANNER_REQUEST:
case ZBAR_QR_SCANNER_REQUEST:
if (resultCode == RESULT_OK) {
String value = data.getStringExtra(ZBarConstants.SCAN_RESULT);
String newValue = value.replaceAll("url:", "");
Intent intent = new Intent(getApplicationContext(), WebViewActivity.class);
intent.putExtra("mUrl",newValue);
startActivity(intent);
//Toast.makeText(this, "Scan Result = " + data.getStringExtra(ZBarConstants.SCAN_RESULT), Toast.LENGTH_LONG).show();
} else if(resultCode == RESULT_CANCELED && data != null) {
String error = data.getStringExtra(ZBarConstants.ERROR_INFO);
if(!TextUtils.isEmpty(error)) {
Toast.makeText(this, error, Toast.LENGTH_SHORT).show();
}
}
break;
}
}
网页视图活动
public class WebViewActivity extends Activity {
private WebView mWebView;
@SuppressLint("SetJavaScriptEnabled")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String mUrl = getIntent().getStringExtra("mUrl");
//String newMUrl = mUrl.replaceAll("url:", "");
mWebView = (WebView) findViewById(R.id.activity_main_webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl(mUrl);
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebViewClient(new MyAppWebViewClient());
}
web视图客户
public class MyAppWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
}
}
MainActivity(FIXED)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case ZBAR_SCANNER_REQUEST:
case ZBAR_QR_SCANNER_REQUEST:
if (resultCode == RESULT_OK) {
String value = data.getStringExtra(ZBarConstants.SCAN_RESULT);
//The FIX IS BELOW url is case-sensitive, instead of url: it's URL:
String newValue = value.replace("URL:", "");
Intent intent = new Intent(getApplicationContext(), WebViewActivity.class);
intent.putExtra("mUrl",newValue);
startActivity(intent);
//Toast.makeText(this, "Scan Result = " + data.getStringExtra(ZBarConstants.SCAN_RESULT), Toast.LENGTH_LONG).show();
} else if(resultCode == RESULT_CANCELED && data != null) {
String error = data.getStringExtra(ZBarConstants.ERROR_INFO);
if(!TextUtils.isEmpty(error)) {
Toast.makeText(this, error, Toast.LENGTH_SHORT).show();
}
}
break;
}
}
我将问题解决为url:实际区分大小写,一旦我调试它。在设备上它显示为一个小写的url:但在实际的代码中它是大写的URL:我希望这可以帮助其他人有同样的问题。 – BeKustom