【问题标题】:Webview Desktop website won't work in AndroidWebview 桌面网站无法在 Android 中运行
【发布时间】:2017-12-22 19:49:28
【问题描述】:

部分是作为学习一点 Android 编程的练习,部分是因为我希望我在 Android 移动设备上有一个 WhatsApp 客户端,我正在尝试创建一个应用程序,我可以亲自将其用作我的移动设备的 WhatsApp 客户端。它所做的只是在 UIWebView 中加载 web.whatsapp.com 桌面站点,如下所示:

webView =  findViewById(R.id.wv);
String ua = "user agent string";
webView.getSettings().setUserAgentString(ua);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(" url ");

webView.setWebViewClient(new WebViewClient(){
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        final Uri uri = request.getUrl();
        return true;
    }

    @Override
    public void onPageFinished(WebView view, final String url) {
        webView.clearHistory();
        super.onPageFinished(view, url);

    }
});

这工作正常。如果活动加载 Web 视图而不是像服务器检测到移动设备时通常发生的那样重定向到原始页面,它实际上确实会在第一次单独加载正确的 Web 应用程序。但是,与其显示实际页面,不如将我重定向到另一个页面,

现在,如果我在移动设备上使用 chrome 的 WhatsApp Web(并请求桌面版本),它工作得非常好,我通过设置 UserAgent 为我的 UIWebView 请求桌面站点。现在,我想知道为什么它在 WebView 中不起作用,以及是否可能需要设置其他标头或值以说服应用程序在我的 WebView 或清单中工作。

我不熟悉 Android 开发。我在网上搜索过这个问题的答案,但找不到。

【问题讨论】:

  • 在设置 WebViewClient 后尝试放置 loadUrl()
  • @rainmaker 感谢您的回复。我尝试了同样的结果
  • 事实上,上述解决方案在安卓模拟器中运行良好。
  • 我搜索了很多,但找不到解决方案。谁能帮帮我。
  • @Rainmaker 你能建议我任何其他解决方案吗?

标签: android webview webclient whatsapp google-chrome-webview


【解决方案1】:

该网站可能使用 Bootstrap 并仅根据显示大小调整屏幕比例。

【讨论】:

  • 感谢您的建议,但不熟悉引导程序,请您详细说明您的答案。
  • 如果我清除缓存它会起作用,第二次它就不起作用了。
【解决方案2】:

你能改吗 String ua="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101Firefox/4.0"; 并尝试一下。

【讨论】:

  • 感谢您的建议,这工作正常。它实际上确实加载了正确的 webapp,而不是像通常打开的那样重定向到 whatsapp 主页要求我选择浏览器页面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
  • 2016-09-14
  • 2012-06-18
  • 1970-01-01
相关资源
最近更新 更多