【问题标题】:What are the options for Android apps that uses webview after API release 26API 26 后使用 webview 的 Android 应用有哪些选项
【发布时间】:2018-10-01 06:59:17
【问题描述】:

我是一个业余爱好者,主要限于 PHP 和 mysql。我为一位客户开发了一个网站,该客户还要求我将其展示为一个 android 应用程序。 所以我按照一些 youtube 教程制作了一个混合应用程序。它大部分工作正常 但在 android 版本 7 和版本 8 中,不推荐使用 webview。他们改用 chrome。 现在任何人都可以建议我一些替代方法来将我的网站显示为 android 中的应用程序。 另外,我可以将 myapp 从 webview 迁移到 chorome。

【问题讨论】:

    标签: android google-chrome webview hybrid


    【解决方案1】:

    webView 未被弃用。

    webView 中的以下方法已弃用

    Android 已弃用 WebViewClient 中的 shouldOverrideUrlLoading(WebView view, String url) {} 并将其替换为 shouldOverrideUrlLoading(WebView, WebResourceRequest),可能是为了获得更大的长期灵活性。

    而不是使用

    boolean shouldOverrideUrlLoading (WebView view, String url)
    

    使用

    shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
    

    【讨论】:

    • 谢谢兄弟。我有两个问题。一个将适用于较旧的 API。二:我应该在哪里更正。
    • 公共类 MainActivity 扩展 AppCompatActivity { private boolean exit=false;私有WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().hide(); setContentView(R.layout.activity_main); webView=(WebView)findViewById(R.id.webview); webView.loadUrl("something.com"); WebSettings webSettings=webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient()); } }
    • 我写不出来,听我再给个答案
    【解决方案2】:

    在onCreate中创建一个名为initWebView的方法

    private void initWebView() {
        webView.setWebChromeClient(new MyWebChromeClient(this));
        webView.setWebViewClient(new WebViewClient() {
    
            @Override
      public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest request) {
    
    webView.loadUrl(request.getUrl().toString());
    return true;
    

    } }

    这应该可以完成工作

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2011-08-15
      • 2020-04-20
      • 2019-10-23
      相关资源
      最近更新 更多