/*
 * ********************************************************************************************************************
 *
 *               iFHS7.
 *              ;BBMBMBMc                  rZMBMBR              BMB
 *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
 *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
 *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
 *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
 *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
 *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
 *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
 *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
 *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
 *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
 *         i0BM: SWKHKGO  MBDv
 *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2019.  斯伯坦机器人
 *              ,  XMW  ..
 *                  r                                                                     All rights reserved.
 *
 * ********************************************************************************************************************
 */

package com.sybotan.android.views.webview

import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.webkit.*

/**
 * Sybotan扩展WebKit控件
 *
 * @author  庞利祥(sybotan@126.com)
 */
open class SWebView(context: Context, attrs: AttributeSet? = null)
    : WebView(context, attrs) {

    /**
     * 类对象
     */
    companion object {
        private val TAG = SWebView::class.java.name
    } // companion object

    /**
     * 默认构造函数
     */
    init {
        settings()
        webChromeClient = SWebChromeClient()
        webViewClient = SWebViewClient()

    } // init

    @SuppressLint("SetJavaScriptEnabled")
    private fun settings() {
        /*启用webview中文件访问，这是针对系统文件。android 的资源文件仍可访问*/
        settings.allowFileAccess = true
        settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.NARROW_COLUMNS

        /*设置WebView是否应支持使用屏幕缩放进行缩放*/
        settings.setSupportZoom(true)

        /*设置缩放控件是否显示*/
        settings.builtInZoomControls = true

        /*设置为false:始终为webview的宽度，true:为视图上最宽的宽度*/
        settings.useWideViewPort = true

        /*设置WebView是否支持多个窗口*/
        settings.setSupportMultipleWindows(true)

        /*是否按宽度缩小内容以适合屏幕*/
        settings.loadWithOverviewMode = true

        // 设置与Js交互的权限
        settings.javaScriptEnabled = true
        // 设置允许JS弹窗
        settings.javaScriptCanOpenWindowsAutomatically = true

        /*设置是否应启用应用程序缓存API*/
        settings.setAppCacheEnabled(true)

        /*设置是否启用数据库存储API*/
        settings.databaseEnabled = true

        /*设置是否启用DOM存储API*/
        settings.domStorageEnabled = true

        /*设置是否开启定位*/
        settings.setGeolocationEnabled(true)

        /*设置是否应显示屏幕缩放控件*/
        settings.displayZoomControls = false

        /*设置缓存模式*/
        settings.cacheMode = WebSettings.LOAD_NO_CACHE
        return
    } // Function settings()

} // Class SWebView