未知的 URL 方案

sid*_*yuk 4 android webview android-intent

我有一个WebView使用 Intent 打印到收据打印机的 android 。使用 chrome 浏览器可以正常工作,但是当我打开尝试打印时,WebView它会给我一条错误消息,如下所示

Webpage not available.
The webpage at
intent://....
net::ERR_UNKNOWN_URL_SCHEME.
Run Code Online (Sandbox Code Playgroud)

我已经看到以下链接,但我不确定如何实现它。 how-to-fix-unknown-url-scheme-in-android-webview

我不是安卓开发者。任何建议表示赞赏。

Pav*_*van 5

您提供的链接中提供了解决方案。

web视图通常会承认httphttps,除了这些之外的任何东西,例如- ,intent://,,等将不被认可通过的WebView除非我们增加了一个处理程序来处理这些URL方案或禁用这些方案,并只加载HTTPHTTPS 方案。market://app://mail://

在您的 MainActivity 中对此进行测试。尝试使用 url打开一个简单的谷歌搜索窗口WebView

public class MainActivity extends AppCompatActivity {

  String url = "http://www.google.com";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webactivity);

    final WebView webview = (WebView) findViewById(R.id.web1);
    webview.loadUrl(url);

    webview.setWebViewClient(new WebViewClient() {

      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);

        if (url.startsWith("http") || url.startsWith("https")) {
          return true;
        } else {
          webview.stopLoading();
          webview.goBack();
          Toast.makeText(MainActivity.this, "Unknown Link, unable to handle", Toast.LENGTH_SHORT).show();
        }
        return false;
      }
    });
  }
}
Run Code Online (Sandbox Code Playgroud)