/* * Tencent is pleased to support the open source community by making * Tencent GT (Version 2.4 and subsequent versions) available. * * Notwithstanding anything to the contrary herein, any previous version * of Tencent GT shall not be subject to the license hereunder. * All right, title, and interest, including all intellectual property rights, * in and to the previous version of Tencent GT (including any and all copies thereof) * shall be owned and retained by Tencent and subject to the license under the * Tencent GT End User License Agreement (http://gt.qq.com/wp-content/EULA_EN.html). * * Copyright (C) 2015 THL A29 Limited, a Tencent company. All rights reserved. * * Licensed under the MIT License (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License at * * http://opensource.org/licenses/MIT * * Unless required by applicable law or agreed to in writing, software distributed * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ package com.tencent.wstt.gt.activity; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import com.tencent.wstt.gt.R; import com.tencent.wstt.gt.api.utils.Env; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.webkit.CookieManager; import android.webkit.CookieSyncManager; import android.webkit.WebSettings; import android.webkit.WebSettings.LayoutAlgorithm; import android.webkit.WebView; public class ShowhtmlActivity extends GTBaseActivity { WebView webview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gt_showhtml); Intent intent = getIntent(); String action = intent.getStringExtra("uri"); String uri = Env.GT_HOMEPAGE; if (action != null && ! action.equals("")) { uri = action; } String cookies = intent.getStringExtra("cookies"); webview = (WebView) findViewById(R.id.showhtml); if (Build.VERSION.SDK_INT >= 11) { // WebView安全性修改 try { Method m = webview.getClass().getMethod("removeJavascriptInterface", String.class); m.invoke(webview, "searchBoxJavaBridge_"); m.invoke(webview, "accessibility"); m.invoke(webview, "accessibilityTraversal"); } catch (NoSuchMethodException e) { // 说明是Andorid2.3以下,do nothing } catch (IllegalArgumentException e) { } catch (IllegalAccessException e) { } catch (InvocationTargetException e) { } } webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); webview.getSettings().setSupportZoom(true); webview.getSettings().setBuiltInZoomControls(true); webview.getSettings().setAllowFileAccess(true); webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webview.getSettings().setAppCacheEnabled(true); webview.getSettings().setDomStorageEnabled(true); webview.getSettings().setDatabaseEnabled(true); if (cookies != null) { CookieSyncManager.createInstance(this); CookieManager cookieManager = CookieManager.getInstance(); // String oldCookie = cookieManager.getCookie(uri); // ToastUtil.ShowLongToast(this, oldCookie); cookieManager.setAcceptCookie(true); cookieManager.removeSessionCookie();// 移除 String[] cookieArray = cookies.split(";"); for (String cookie : cookieArray) { if (!cookie.trim().isEmpty()) { cookieManager.setCookie(uri, cookie);//cookies是在HttpClient中获得的cookie } } CookieSyncManager.getInstance().sync(); } try { webview.loadUrl(uri); } catch (Exception e) { e.printStackTrace(); } } }