2016-12-13 2 views
0

Я хотел бы отредактировать настройку единицы по умолчанию на странице WebView с «узлов» до «км/ч», отредактировав файл cookie. я получаю WebView печенье, как это:Редактировать значение в android Webview cookie

CookieManager cookieManager = CookieManager.getInstance();    
cookie = cookieManager.getCookie(link); 

Результат печенья по умолчанию:

..wf_units =% 7B% 22temperature% 22% 3A% 22с% 22% 2C% 22windspeed% 22 % 3A% 22 КТС% 22% 2C% 22wa ...

и путем редактирования вручную настройки блока на странице WV от "узлов" до "км/ч" результат печенья является:

..wf_units =% 7B% 22temperature% 22% 3A% 22с% 22% 2C% 22windspeed% 22% 3A% 22 км% 22% 2C% 22wa ...

Я сделал так:

@Override 
public void onPageFinished(WebView view, String url) { 
String ck ="..wf_units=%7B%22temperature%22%3A%22c%22%2C%22windspeed%22%3A%22km%22%2C%22wa..."; 
cookieManager.setCookie(link, ck); 
} 

Но я все еще получаю «КТС» в печенье, я также попытался это:

@Override 
public void onPageFinished(WebView view, String url) { 
cookie.replace("kts","km"); 
} 

ответ

0

Я понял это как Тхи s:

// get cookie file in Android api 17 
File cokieFile = new File(getFilesDir().getParent()+"/app_webview/Cookies"); 

// get cookie file in Android api 23 
File webviewCookiesChromiumFile = new File(getFilesDir().getParent()+"/databases/webviewCookiesChromium.db"); 

И затем вручную редактировать «КТС» значение «км» с помощью программы для просмотра & редактировать .DB файлы.

Затем я поместил отредактированный файл cookie в свое приложение в папке «Активы».

Тогда я заменить WebView генерируется файл печенье на один в моих активах папкой каждый раза, когда приложение завтракало, как это:

File app_webviewFile = new File(getFilesDir().getParent()+"/app_webview/"); 
File cokieFile = new File(getFilesDir().getParent()+"/app_webview/Cookies"); 
AssetManager assetManager = getAssets();   
try { 

    OutputStream myOutput = new FileOutputStream(cokieFile); 
      byte[] buffer = new byte[1024]; 
      int length; 
      InputStream myInput = assetManager.open("Cookies"); 
      while ((length = myInput.read(buffer)) > 0) { 
       myOutput.write(buffer, 0, length); 
      } 
      myInput.close(); 
      myOutput.flush(); 
      myOutput.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     Toast.makeText(this, "?", Toast.LENGTH_LONG).show(); 
    } 

Надеется, что это может помочь кто-то другое.

Смежные вопросы