0
我使用下面的代碼,因爲許多帖子建議修改CordovaWebView將使用的用戶代理字符串。但是,我從來沒有收到任何到服務器的http請求中的用戶代理字符串。我得到通常的用戶代理字符串。在Android 4.4(科爾多瓦4.3)修改CordovaWebView用戶代理字符串GWT
public class MainActivity extends CordovaActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
CordovaWebView.setWebContentsDebuggingEnabled(true);
loadUrl(launchUrl);
}
@Override
protected CordovaWebView makeWebView() {
CordovaWebView cordovaWebView = super.makeWebView();
WebSettings settings = cordovaWebView.getSettings();
settings.setUserAgentString(settings.getUserAgentString()+" phonegap.env=yes");
settings.setAppCacheEnabled(true);
settings.setAppCachePath(getApplicationContext().getDir("html5-cache",MODE_PRIVATE).getAbsolutePath());
return cordovaWebView;
}
我正在從服務器加載GWT應用程序到Android科爾多瓦容器。 GWT主機頁面指定一個緩存清單。從CordovaWebView到服務器的緩存清單調用不包含修改後的用戶代理字符串。
任何想法爲什麼不呢?
我試圖通過分析服務器上收到的用戶代理字符串來檢測應用程序是在Cordova容器還是移動瀏覽器中運行,以便我可以提供正確的緩存清單。
Out of inter估計你是暗示window.location.assign =導致CordovaWebView啓動在應用程序瀏覽器?那是對的嗎?如果我沒有將應用程序瀏覽器安裝爲插件,會發生什麼 –
paul
其實我不確定這是否是問題。在我的CordovaWebView中,我做了window.location.assign =。載入的仍然可以訪問Cordova API,這向我建議我不打開inAppBrowser –
paul
我仍在試驗。我也試圖使用cdvfile://包含所需的js文件。如果這樣的話,safari瀏覽器會忽略它,然後我不會需要修改用戶代理。現在我已經放棄了 – michaelbn