Skip to content

Commit 78e4730

Browse files
Copilotanupriya13
andcommitted
Expand default WebView methods to include comprehensive API coverage
Co-authored-by: anupriya13 <54227869+anupriya13@users.noreply.github.com>
1 parent f1e1527 commit 78e4730

1 file changed

Lines changed: 255 additions & 5 deletions

File tree

packages/@react-native-windows/cli/src/commands/moduleWindowsSetup/moduleWindowsSetup.ts

Lines changed: 255 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,51 @@ export default TurboModuleRegistry.getEnforcing<Spec>('${moduleName}');
895895

896896
private getDefaultWebViewMethods(): MethodSignature[] {
897897
return [
898+
// Navigation methods
899+
{
900+
name: 'GoBack',
901+
returnType: 'void',
902+
parameters: [],
903+
},
904+
{
905+
name: 'GoForward',
906+
returnType: 'void',
907+
parameters: [],
908+
},
909+
{
910+
name: 'Reload',
911+
returnType: 'void',
912+
parameters: [],
913+
},
914+
{
915+
name: 'StopLoading',
916+
returnType: 'void',
917+
parameters: [],
918+
},
919+
{
920+
name: 'LoadUrl',
921+
returnType: 'void',
922+
parameters: [{ name: 'url', type: 'string' }],
923+
},
924+
925+
// JavaScript injection and messaging
926+
{
927+
name: 'InjectJavaScript',
928+
returnType: 'void',
929+
parameters: [{ name: 'script', type: 'string' }],
930+
},
931+
{
932+
name: 'SetInjectedJavaScript',
933+
returnType: 'void',
934+
parameters: [{ name: 'script', type: 'string' }],
935+
},
936+
{
937+
name: 'PostMessage',
938+
returnType: 'void',
939+
parameters: [{ name: 'message', type: 'string' }],
940+
},
941+
942+
// Messaging configuration
898943
{
899944
name: 'MessagingEnabled',
900945
returnType: 'void',
@@ -905,20 +950,225 @@ export default TurboModuleRegistry.getEnforcing<Spec>('${moduleName}');
905950
returnType: 'boolean',
906951
parameters: [],
907952
},
953+
954+
// Focus and interaction
908955
{
909-
name: 'SetInjectedJavascript',
956+
name: 'RequestFocus',
910957
returnType: 'void',
911-
parameters: [{ name: 'payload', type: 'string' }],
958+
parameters: [],
912959
},
913960
{
914-
name: 'RequestFocus',
961+
name: 'ClearFocus',
915962
returnType: 'void',
916963
parameters: [],
917964
},
965+
966+
// Content and cache management
918967
{
919-
name: 'PostMessage',
968+
name: 'ClearCache',
920969
returnType: 'void',
921-
parameters: [{ name: 'message', type: 'string' }],
970+
parameters: [{ name: 'includeDiskFiles', type: 'boolean' }],
971+
},
972+
{
973+
name: 'ClearHistory',
974+
returnType: 'void',
975+
parameters: [],
976+
},
977+
{
978+
name: 'ClearFormData',
979+
returnType: 'void',
980+
parameters: [],
981+
},
982+
983+
// State queries
984+
{
985+
name: 'CanGoBack',
986+
returnType: 'Promise<boolean>',
987+
parameters: [],
988+
},
989+
{
990+
name: 'CanGoForward',
991+
returnType: 'Promise<boolean>',
992+
parameters: [],
993+
},
994+
995+
// File upload support
996+
{
997+
name: 'IsFileUploadSupported',
998+
returnType: 'Promise<boolean>',
999+
parameters: [],
1000+
},
1001+
1002+
// Load with request
1003+
{
1004+
name: 'ShouldStartLoadWithLockIdentifier',
1005+
returnType: 'void',
1006+
parameters: [
1007+
{ name: 'shouldStart', type: 'boolean' },
1008+
{ name: 'lockIdentifier', type: 'double' }
1009+
],
1010+
},
1011+
1012+
// Zoom and scaling
1013+
{
1014+
name: 'SetZoomControlsEnabled',
1015+
returnType: 'void',
1016+
parameters: [{ name: 'enabled', type: 'boolean' }],
1017+
},
1018+
{
1019+
name: 'SetDisplayZoomControls',
1020+
returnType: 'void',
1021+
parameters: [{ name: 'enabled', type: 'boolean' }],
1022+
},
1023+
1024+
// User agent
1025+
{
1026+
name: 'SetUserAgent',
1027+
returnType: 'void',
1028+
parameters: [{ name: 'userAgent', type: 'string' }],
1029+
},
1030+
1031+
// Developer tools
1032+
{
1033+
name: 'SetWebContentsDebuggingEnabled',
1034+
returnType: 'void',
1035+
parameters: [{ name: 'enabled', type: 'boolean' }],
1036+
},
1037+
1038+
// Download handling
1039+
{
1040+
name: 'OnDownloadStart',
1041+
returnType: 'void',
1042+
parameters: [
1043+
{ name: 'url', type: 'string' },
1044+
{ name: 'userAgent', type: 'string' },
1045+
{ name: 'contentDisposition', type: 'string' },
1046+
{ name: 'mimetype', type: 'string' },
1047+
{ name: 'contentLength', type: 'double' }
1048+
],
1049+
},
1050+
1051+
// Custom scheme handling
1052+
{
1053+
name: 'SetUrlSchemeHandler',
1054+
returnType: 'void',
1055+
parameters: [
1056+
{ name: 'scheme', type: 'string' },
1057+
{ name: 'handler', type: 'string' }
1058+
],
1059+
},
1060+
1061+
// Cookie management
1062+
{
1063+
name: 'SetCookieEnabled',
1064+
returnType: 'void',
1065+
parameters: [{ name: 'enabled', type: 'boolean' }],
1066+
},
1067+
{
1068+
name: 'SetThirdPartyCookiesEnabled',
1069+
returnType: 'void',
1070+
parameters: [{ name: 'enabled', type: 'boolean' }],
1071+
},
1072+
1073+
// DOM storage
1074+
{
1075+
name: 'SetDomStorageEnabled',
1076+
returnType: 'void',
1077+
parameters: [{ name: 'enabled', type: 'boolean' }],
1078+
},
1079+
1080+
// Database
1081+
{
1082+
name: 'SetDatabaseEnabled',
1083+
returnType: 'void',
1084+
parameters: [{ name: 'enabled', type: 'boolean' }],
1085+
},
1086+
1087+
// Geolocation
1088+
{
1089+
name: 'SetGeolocationEnabled',
1090+
returnType: 'void',
1091+
parameters: [{ name: 'enabled', type: 'boolean' }],
1092+
},
1093+
1094+
// Mixed content mode
1095+
{
1096+
name: 'SetMixedContentMode',
1097+
returnType: 'void',
1098+
parameters: [{ name: 'mode', type: 'string' }],
1099+
},
1100+
1101+
// Hardware acceleration
1102+
{
1103+
name: 'SetLayerType',
1104+
returnType: 'void',
1105+
parameters: [{ name: 'layerType', type: 'string' }],
1106+
},
1107+
1108+
// Text selection and interaction
1109+
{
1110+
name: 'SetTextZoom',
1111+
returnType: 'void',
1112+
parameters: [{ name: 'textZoom', type: 'double' }],
1113+
},
1114+
{
1115+
name: 'SetAllowsLinkPreview',
1116+
returnType: 'void',
1117+
parameters: [{ name: 'enabled', type: 'boolean' }],
1118+
},
1119+
1120+
// Content blocking
1121+
{
1122+
name: 'SetContentBlockers',
1123+
returnType: 'void',
1124+
parameters: [{ name: 'blockers', type: 'string' }],
1125+
},
1126+
1127+
// SSL error handling
1128+
{
1129+
name: 'SetIgnoreSSLErrors',
1130+
returnType: 'void',
1131+
parameters: [{ name: 'ignore', type: 'boolean' }],
1132+
},
1133+
1134+
// Window features
1135+
{
1136+
name: 'SetJavaScriptCanOpenWindowsAutomatically',
1137+
returnType: 'void',
1138+
parameters: [{ name: 'enabled', type: 'boolean' }],
1139+
},
1140+
{
1141+
name: 'SetMultipleWindowsSupported',
1142+
returnType: 'void',
1143+
parameters: [{ name: 'enabled', type: 'boolean' }],
1144+
},
1145+
1146+
// Print support
1147+
{
1148+
name: 'Print',
1149+
returnType: 'void',
1150+
parameters: [],
1151+
},
1152+
1153+
// Incognito mode
1154+
{
1155+
name: 'SetIncognito',
1156+
returnType: 'void',
1157+
parameters: [{ name: 'enabled', type: 'boolean' }],
1158+
},
1159+
1160+
// Cache mode
1161+
{
1162+
name: 'SetCacheMode',
1163+
returnType: 'void',
1164+
parameters: [{ name: 'mode', type: 'string' }],
1165+
},
1166+
1167+
// Application name for user agent
1168+
{
1169+
name: 'SetApplicationNameForUserAgent',
1170+
returnType: 'void',
1171+
parameters: [{ name: 'applicationName', type: 'string' }],
9221172
},
9231173
];
9241174
}

0 commit comments

Comments
 (0)