【问题标题】:How to open url in webview activity如何在 webview 活动中打开 url
【发布时间】:2018-03-19 08:53:53
【问题描述】:

如何在 Webview 活动中打开 Url

嗨,

我现在想在 WebView 活动中打开链接我的代码是扫描条形码并直接打开浏览器的链接但是 我想更改它并在 Webview 中打开 我该怎么做,请帮我解决这个问题

谢谢

这是 BarcodeScannerActivity 的代码

   public class BarcodeScannerActivity extends AppCompatActivity {

    String scanContent;
    String scanFormat;
    TextView textView;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_barcode_scanner);
        textView = (TextView) findViewById(R.id.textView);
        button = (Button) findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                IntentIntegrator scanIntegrator = new IntentIntegrator(BarcodeScannerActivity.this);
                scanIntegrator.setPrompt("Scan");
                scanIntegrator.setBeepEnabled(true);

                //enable the following line if you want QR code
                //scanIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);

                scanIntegrator.setCaptureActivity(CaptureActivityAnyOrientation.class);
                scanIntegrator.setOrientationLocked(true);
                scanIntegrator.setBarcodeImageEnabled(true);
                scanIntegrator.initiateScan();
            }
        });


    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (scanningResult != null) {
            if (scanningResult.getContents() != null) {
                scanContent = scanningResult.getContents().toString();
                scanFormat = scanningResult.getFormatName().toString();
            }

            Toast.makeText(this, scanContent + "   type:" + scanFormat, Toast.LENGTH_SHORT).show();

            textView.setText(scanContent + "    type:" + scanFormat);



            Intent browseintent=new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com/index.php?iduser="+ scanContent));
            startActivity(browseintent);

        } else {
            Toast.makeText(this, "Nothing scanned", Toast.LENGTH_SHORT).show();
        }
    }
}

Webview 活动代码

        public class SecondActivity extends AppCompatActivity {
            Button b1;
            EditText ed1;

            private WebView wv1;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_second);

                b1=(Button)findViewById(R.id.button);
                ed1=(EditText)findViewById(R.id.editText);

                wv1=(WebView)findViewById(R.id.webView);
                wv1.setWebViewClient(new MyBrowser());

                b1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        String url = ed1.getText().toString();

                        wv1.getSettings().setLoadsImagesAutomatically(true);
                        wv1.getSettings().setJavaScriptEnabled(true);
                        wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
                        wv1.loadUrl(url);
                    }
                });
            }

            private class MyBrowser extends WebViewClient {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
            }
        }

【问题讨论】:

标签: android webview android-webview


【解决方案1】:

替换以下代码

Intent browseintent=new Intent(Intent.ACTION_VIEW, 
  Uri.parse("http://www.example.com/index.php?iduser="+ scanContent));
  startActivity(browseintent);

下面的代码

Intent browseintent=new Intent(this, SecondActivity.class);
browseintent.putExtra("url","http://www.example.com/index.php?iduser="+ scanContent);
startActivity(browseintent);

这将在意图附加内容中打开带有 url 的 secondactivity。您可以将其设置为您的编辑文本,也可以将其直接用于您的网络视图。 您可以使用以下代码在第二个活动中接收 url

String url = getIntent().getExtras().getString("url");

您可以在您的按钮点击中使用它,如下所示

b1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String url = getIntent().getExtras().getString("url");

                    wv1.getSettings().setLoadsImagesAutomatically(true);
                    wv1.getSettings().setJavaScriptEnabled(true);
                    wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
                    wv1.loadUrl(url);
                }
            });

【讨论】:

  • sorry e is capital make it putExtra
  • 当我打开第二个活动时,它会显示错误不断停止关闭应用程序
  • 当您单击相同布局中的按钮时,将加载您的代码 webview。如果您想在打开活动时直接加载 webview,您需要在按钮的 onclick 之外提供代码
  • 是的,我想直接加载 webview 我也想删除按钮
【解决方案2】:

你试试这个,它应该打开带有 webview 的链接:

WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAllowContentAccess(true);
settings.setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://vk.com/zabroshkiborika");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多