From a5e7b82543c4c2e63c8bf46cc96a1d93cd8b5f4d Mon Sep 17 00:00:00 2001 From: bocajthomas <41988041+bocajthomas@users.noreply.github.com> Date: Sun, 20 Jul 2025 02:45:08 +0100 Subject: [PATCH 1/2] feat(examples): webview dialog an experimental webview dialog script --- examples/webview_experiment.js | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 examples/webview_experiment.js diff --git a/examples/webview_experiment.js b/examples/webview_experiment.js new file mode 100644 index 0000000..ffe382d --- /dev/null +++ b/examples/webview_experiment.js @@ -0,0 +1,42 @@ +// ==SE_module== +// name: webview_experiment +// displayName: WebView Dialog Experiment +// description: A Script that adds custom webview dialogs into snapchat +// version: 1.0.0 +// author: bocajthomas +// permissions: unsafe-classloader +// ==/SE_module== + +var networking = require("networking"); +var messaging = require("messaging"); +var config = require("config"); +var im = require("interface-manager"); +var ipc = require("ipc"); +var javaInterfaces = require("java-interfaces"); +var hooker = require("hooker"); +var events = require("events"); + +module.onSnapMainActivityCreate = function(activity) { + const WebViewClass = findClass("android.webkit.WebView", true); + const AlertDialogBuilderClass = findClass("android.app.AlertDialog$Builder", true); + + if (!WebViewClass || !AlertDialogBuilderClass) { + console.error("Required classes not found"); + return; + } + + const ContextClass = findClass("android.content.Context", true); + const webViewConstructor = WebViewClass.getConstructor(ContextClass); + const webView = webViewConstructor.newInstance(activity); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("https://youtu.be/xvFZjo5PgG0"); + + const builderConstructor = AlertDialogBuilderClass.getConstructor(ContextClass); + const builder = builderConstructor.newInstance(activity); + builder.setView(webView); + builder.setTitle("Custom Webview Script"); + builder.setPositiveButton("Close", null); + + const dialog = builder.create(); + dialog.show(); +}; \ No newline at end of file From a10a52953025ef1a0221ea5bc634a2d7e1f6b6a0 Mon Sep 17 00:00:00 2001 From: bocajthomas <41988041+bocajthomas@users.noreply.github.com> Date: Sun, 20 Jul 2025 02:52:11 +0100 Subject: [PATCH 2/2] fix: webview Script - fixed redirect link, now uses scripting-docs repo as default --- examples/webview_experiment.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/webview_experiment.js b/examples/webview_experiment.js index ffe382d..9aabdf3 100644 --- a/examples/webview_experiment.js +++ b/examples/webview_experiment.js @@ -29,7 +29,7 @@ module.onSnapMainActivityCreate = function(activity) { const webViewConstructor = WebViewClass.getConstructor(ContextClass); const webView = webViewConstructor.newInstance(activity); webView.getSettings().setJavaScriptEnabled(true); - webView.loadUrl("https://youtu.be/xvFZjo5PgG0"); + webView.loadUrl("https://github.com/SnapEnhance/scripting-docs"); const builderConstructor = AlertDialogBuilderClass.getConstructor(ContextClass); const builder = builderConstructor.newInstance(activity); @@ -39,4 +39,4 @@ module.onSnapMainActivityCreate = function(activity) { const dialog = builder.create(); dialog.show(); -}; \ No newline at end of file +};