当前位置: 首页 > 面试题库 >

为WebView强制网站的移动版本

百里朝
2023-03-14
问题内容

我正在将URL加载到Webview中以将其显示在我的应用中。我遇到的问题是,网站并非总是能识别出我是手机(为什么如此?)。如何强制Webview发送到我的手机网站?目前我正在那样做

webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");

但这行不通吗?因为我没有使用iPhone,所以行不通吗?我不认为这是原因,因为它只是设置用户代理…

这是相关的代码(不相关的代码仅包含诸如从意图中获取url和格式化字符串等数据)

//package

//imports

public class WebViewing extends Activity {

    private WebView webview;
    private ProgressDialog dialog;

    //init strings

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webviewer);

        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);

        //init variables

        //get intent data and format string


        this.webview = (WebView) findViewById(R.id.webView1);
        webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); 
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                if (dialog.isShowing()) {
                    dialog.dismiss();
                }
            }

            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        dialog.setMessage("Website wird geladen...\nDies ist abh\u00E4ngig von deiner Internet-Verbindung.");
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();
        webview.loadUrl(sourceURL);
        setTitle("Platz: " + plusRank + " - " + realDate);

    }

    //onCreateOptionsMenu method

    //onOptionsItemSelected method
}

我还为用户代理尝试了此字符串

Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1


问题答案:

尝试将这些行放在下面:

webview.getSettings().setJavaScriptEnabled(true);
 webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");


 类似资料:
  • 我做了很多关于堆栈溢出的研究,也做了很多谷歌的研究,但我发现没有一个真正适合我的。我想让站点查看桌面站点,而不是移动站点。我该怎么做?我想让它直接去桌面站点。

  • 问题内容: 我刚刚创建了我的第一个jQuery移动网站。 我想让那些使用手机查看“完整站点”的人自动转移到“移动站点”。但是,如果愿意,也可以单击链接来查看完整站点。 我不知道从哪里开始。我可以使用一些JavaScript吗? 问题答案: if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)

  • 我正在创建一个网站(快速网络)在2种语言-英语和希伯来语。我有一个输入字段(段塞/用户名),必须是英文(字母数字拉丁字符)。当我从手机进入网站时,我可以用希伯来语写文本。在这个输入字段中,是否可以强制键盘为英文?我注意到电子邮件地址(电子邮件输入)的键盘已经是英文的了。 更新:在服务器端,我们会验证输入。我不想在客户端验证输入(使用JavaScript)或阻止用户键入希伯来字符(这可能会在以后完成

  • 网页迁移是将网页从一个主机移动到另一个主机的过程。 这个过程是由于各种原因完成的,其中的一些原因是 - 您不再支持托管公司的支持 另一个托管的价格更便宜 实际托管计划不能满足您的需求了 所提供的技术已经不再有竞争力了等等 由于迁移是一个过程,因此需要采取以下步骤以最短的停机时间完成网页。 我们必须像前几章所讨论的那样完全备份网站代码网页和数据库。 上传新的托管备份文件。 解压公用文件夹中的文件。

  • 使用网站改版工具前,站点应该做哪些工作 1)首先您要将改版前的旧链接全部通过301跳转到改版后的新链接,并且这种跳转必须是一一对应的关系,不能出现多条旧链接跳转到一条新链接,或者一条旧链接在不同时间内跳转到不同新链接的情况。   2)如果改版后产生新的站点,无论是www主站点还是二级域名,都需要将新站点在百度搜索资源平台进行验证,以保证明您拥有该站点的管理权限。 网站改版工具如何使用 当一个站点的

  • Read up https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2 first for problems in v1's approach. note The versioned docs should normally be migrated correctly by the migration CLI Migrate your