Răsfoiți Sursa

#IQBX #comment [Chromium] 添加UOS浏览器额外参数的配置

gifur 3 ani în urmă
părinte
comite
7a2e71ad26

+ 44 - 3
Module/mod_chromium/CModTools.cpp

@@ -434,11 +434,17 @@ namespace Chromium {
 
             //strParams.Append(" --app=\"");
 			strParams.Append(" ");
+
+            std::string additionalParam = getAdditionalUOSBrowserSettings();
+            if (!additionalParam.empty()) {
+                strParams.Append(additionalParam.c_str());
+                strParams.Append(" ");
+            }
+
             strParams.Append(AdUrl.c_str());
             //strParams.Append("\"");
 
             strUOSBrowserPath.Append(strParams);
-            DbgEx("cmdline : %s", strUOSBrowserPath.GetData());
 
             LogWarn(Severity_High, Error_Unexpect, LOG_EVT_CHROMIUM_OPEN_AD_WITH_UOS, strUOSBrowserPath);
             return strUOSBrowserPath.GetData();
@@ -467,7 +473,36 @@ namespace Chromium {
 	}
 
 
-	std::string CModTools::generateCefclientCmd(bool isExtend, std::string mainUrl)
+    std::string CModTools::getAdditionalUOSBrowserSettings(int nType /*= 0*/)
+    {
+		std::string result("");
+		CSimpleStringA section("UOSBrowserCmd");
+		if (nType == 1) {
+			section = "UOSBrowserCmdMain";
+		} else if(nType == 2) {
+			section = "UOSBrowserCmdVice";
+		} else if (nType != 0) {
+			return result;
+		}
+
+       CSmartPointer<IConfigInfo> spConfig;
+       m_pEntity->GetFunction()->OpenConfig(Config_Software, spConfig);
+	   int count(0);
+	   spConfig->ReadConfigValueInt(section, "Count", count);
+	   for (int i = 0; i <= count; ++i) {
+		   CSimpleStringA key = CSimpleStringA::Format("Additional%d", i);
+		   CSimpleStringA value(true);
+		   spConfig->ReadConfigValue(section, key, value);
+		   if (!value.IsNullOrEmpty()) {
+               if (!result.empty()) result += " ";
+			   result += value.GetData();
+		   }
+	   }
+
+	   return result;
+    }
+
+    std::string CModTools::generateCefclientCmd(bool isExtend, std::string mainUrl)
 	{
 		if (m_bUseUOSBrowser && !isExtend) {
 
@@ -489,12 +524,18 @@ namespace Chromium {
             strParams.Append(" --user-data-dir=").Append(usrDataPath);
 
 			strParams.Append(" ");
+
+			std::string additionalParam = getAdditionalUOSBrowserSettings();
+			if (!additionalParam.empty()) {
+				strParams.Append(additionalParam.c_str());
+                strParams.Append(" ");
+			}
+
 			strParams.Append(mainUrl.c_str());
 
 			strUOSBrowserPath.Append(strParams);
 
             LogWarn(Severity_High, Error_Unexpect, LOG_EVT_CHROMIUM_OPEN_MAIN_WITH_UOS, strUOSBrowserPath);
-			DbgEx("cmdline : %s", strUOSBrowserPath.GetData());
 
 			return strUOSBrowserPath.GetData();
 		}

+ 3 - 0
Module/mod_chromium/CModTools.h

@@ -67,6 +67,9 @@ namespace Chromium {
 		std::string generateMainCmd(std::string mainUrl);
 		std::string generateExtendCmd(std::string extendUrl);
 		std::string generateAdCmd(std::string AdUrl);
+
+		/** 0:通用,1主屏,2:副屏 [Gifur@2022125]*/
+		std::string getAdditionalUOSBrowserSettings(int nType = 0);
 		std::pair<bool, std::string> GenerateErrPage(ERR_PAGE_REASON errType,
 			std::tuple < std::string, std::string> norParam, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam);
 		std::pair<ErrorCodeEnum, int> openCef(std::string cmdline, bool isGuard = false);

+ 16 - 0
addin/cfg/Chromium.ini

@@ -0,0 +1,16 @@
+[UOSBrowserCmd]
+Count=8
+;跳过 Chromium 首次运行检查
+Additional0=--no-first-run
+;禁用弹出拦截
+Additional1=--disable-popup-blocking
+Additional2=--disable-notifications
+;禁用桌面通知,在 Windows 中桌面通知默认是启用的
+Additional3=--disable-desktop-notifications
+Additional4=--allow-running-insecure-content
+Additional5=--disable-infobars
+Additional6=--disable-suggestions-service
+Additional7=--disable-save-password-bubble
+Additional8=--disable-component-update
+;让浏览器直接以隐身模式启动
+Additional9999=--incognito