我正在尝试更改人行横道的用户代理,作为Cordova的webview。我目前正在使用插件cordova-插件-人行横道-网络视图。
我能够使用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);
}
}但是,当我使用人行横道插件运行这个应用程序时,它会因为这段代码而崩溃。没有人行横道,一切都很完美。我正在使用科多瓦5.2.0和人行横道13号。
有什么暗示吗?
发布于 2015-10-03 18:21:18
我不确定这是否是首选的方法,但下面是我所做的(使用人行横道14+):
<preference name="xwalkUserAgent" value="Custom UA" />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进行更改。
https://stackoverflow.com/questions/32199128
复制相似问题