首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将人行横道13+的用户代理更改为Cordova中的webview

将人行横道13+的用户代理更改为Cordova中的webview
EN

Stack Overflow用户
提问于 2015-08-25 08:29:39
回答 1查看 1.5K关注 0票数 1

我正在尝试更改人行横道的用户代理,作为Cordova的webview。我目前正在使用插件cordova-插件-人行横道-网络视图。

我能够使用vanilla Cordova使用以下代码完成用户代理的定制:

代码语言:javascript
复制
import android.webkit.WebSettings;
import android.webkit.WebView;

public class MainActivity extends CordovaActivity
{   

    public WebSettings settings;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.init();

        settings = ((WebView) super.appView.getEngine().getView()).getSettings();
        String defaultUA = settings.getUserAgentString();
        String customUA = defaultUA+" OreeganoC1";
        settings.setUserAgentString(customUA);

        loadUrl(launchUrl);
    }
}

但是,当我使用人行横道插件运行这个应用程序时,它会因为这段代码而崩溃。没有人行横道,一切都很完美。我正在使用科多瓦5.2.0和人行横道13号。

有什么暗示吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-03 18:21:18

我不确定这是否是首选的方法,但下面是我所做的(使用人行横道14+):

  1. 我在我的config.xml中添加了一个自定义首选项: <preference name="xwalkUserAgent" value="Custom UA" />
  2. Project/platforms/android/src/org/crosswalk/engine/XWalkWebViewEngine.java中,我在类中添加了以下代码: 公共静态最终字符串PREF_USER_AGENT = "xwalkUserAgent";受保护的CordovaPreferences首选项; 在构造函数中,我存储了首选项: 公共XWalkWebViewEngine(上下文,CordovaPreferences首选项){ this.preferences = preferences;.} 最后,在initWebViewSettings()方法中,我设置了用户代理: 私有void initWebViewSettings() { webView.setVerticalScrollBarEnabled(false);String xwalkUserAgent = preferences.getString(PREF_USER_AGENT,"");webView.setUserAgentString(xwalkUserAgent);}

现在,每当我需要更改用户代理时,我都可以从config.xml进行更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32199128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档