【发布时间】:2015-08-25 08:29:39
【问题描述】:
我正在尝试更改 Crosswalk 的用户代理,用作 Cordova 的 web 视图。我目前正在使用插件 cordova-plugin-crosswalk-webview。
我可以使用以下代码使用 vanilla Cordova 完成用户代理的自定义:
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);
}
}
但是,当我使用 Crosswalk 插件运行应用程序时,它会因为这段代码而崩溃。没有人行横道,一切都可以完美运行。 我正在使用 Cordova 5.2.0 和 Crosswalk 13。
有什么提示吗?
【问题讨论】:
-
你为什么要更换用户代理?
-
该应用程序正在从远程网站获取一些页面,该网站专门针对该应用程序更改其 css 和 js,以提供更好的用户体验。因此,我需要确定请求何时来自应用程序,并检查 UA 中的自定义字符串是我认为最简单的方法。
-
首先,如果您使用 Crosswalk,我认为您应该转换为 XWalkView 而不是标准的 android.webkit.WebView。如果你得到 XWalkView,你可以使用直接方法setUserAgent 来设置 User-Agent。像这样的东西:
walkView.setUserAgentString("NewAgent"); -
如何获取 MainActivity 中的 XWalkView,以便更改用户代理?
标签: java android cordova cordova-plugins crosswalk-runtime