Advertisement
ghiwar

hiden elemen webview

Mar 11th, 2025
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 9.91 KB | None | 0 0
  1. package com.anwar.livescore.ui.webview
  2.  
  3. import android.graphics.Bitmap
  4. import android.os.Bundle
  5. import android.view.MotionEvent
  6. import android.webkit.WebView
  7. import android.webkit.WebViewClient
  8. import androidx.activity.ComponentActivity
  9. import androidx.activity.compose.setContent
  10. import androidx.compose.foundation.background
  11. import androidx.compose.foundation.layout.*
  12. import androidx.compose.material3.CircularProgressIndicator
  13. import androidx.compose.material3.MaterialTheme
  14. import androidx.compose.runtime.*
  15. import androidx.compose.ui.Alignment
  16. import androidx.compose.ui.Modifier
  17. import androidx.compose.ui.viewinterop.AndroidView
  18.  
  19. class WebViewActivity : ComponentActivity() {
  20.     private lateinit var webView: WebView
  21.  
  22.     override fun onCreate(savedInstanceState: Bundle?) {
  23.         super.onCreate(savedInstanceState)
  24.         val url = intent.getStringExtra("url") ?: return
  25.         setContent {
  26.             WebViewScreen(url) { webViewInstance ->
  27.                 webView = webViewInstance
  28.             }
  29.         }
  30.     }
  31.  
  32.     override fun onBackPressed() {
  33.         if (webView.canGoBack()) {
  34.             webView.goBack()
  35.         } else {
  36.             super.onBackPressed()
  37.         }
  38.     }
  39. }
  40.  
  41. @Composable
  42. fun WebViewScreen(url: String, onWebViewCreated: (WebView) -> Unit) {
  43.     var isLoading by remember { mutableStateOf(true) }
  44.    
  45.     Box(
  46.         modifier = Modifier
  47.             .fillMaxSize()
  48.             .background(MaterialTheme.colorScheme.background)
  49.     ) {
  50.         AndroidView(
  51.             factory = { context ->
  52.                 WebView(context).apply {
  53.                     webViewClient = object : WebViewClient() {
  54.                         override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
  55.                             super.onPageStarted(view, url, favicon)
  56.                             isLoading = true
  57.                         }
  58.  
  59.                         override fun onPageFinished(view: WebView?, url: String?) {
  60.                             super.onPageFinished(view, url)
  61.                             isLoading = false
  62.                            
  63.                             // Inject JavaScript untuk menyembunyikan elemen
  64.                             view?.evaluateJavascript(
  65.                                 """
  66.                                (function() {
  67.                                    // Fungsi untuk menyembunyikan elemen
  68.                                    function hideElement(selector) {
  69.                                        const elements = document.querySelectorAll(selector);
  70.                                        elements.forEach(function(element) {
  71.                                            element.style.display = 'none';
  72.                                        });
  73.                                    }
  74.                                    
  75.                                    function removeElement(selector) {
  76.                                        const elements = document.querySelectorAll(selector);
  77.                                        elements.forEach(function(element) {
  78.                                            element.remove();
  79.                                        });
  80.                                    }
  81.                                    
  82.                                    // Sembunyikan elemen yang tidak diinginkan
  83.                                    hideElement('.banner-content-wrapper');
  84.                                    hideElement('#tableStats');
  85.                                    hideElement('#voteLeft');
  86.                                    hideElement('#voteRight');
  87.                                    hideElement('.adsbygoogle');
  88.                                    hideElement('ins');
  89.                                    hideElement('iframe');
  90.                                    hideElement('.ads');
  91.                                    hideElement('.ad-container');
  92.                                    hideElement('#ads');
  93.                                    hideElement('[id*="ads"]');
  94.                                    hideElement('[class*="ads"]');
  95.                                    
  96.                                    // Sembunyikan tombol share
  97.                                    hideElement('#facebookButton');
  98.                                    hideElement('#whatsappButton');
  99.                                    hideElement('[href*="facebook.com/sharer"]');
  100.                                    hideElement('[href*="wa.me"]');
  101.                                    hideElement('[style*="margin:2px;font-size:10px;text-align:center;"]');
  102.                                    
  103.                                    // Sembunyikan header liga
  104.                                    hideElement('[style*="overflow: hidden;height: 18px;margin-top: 5px"]');
  105.                                    hideElement('[style*="background-color: rgba(0, 0, 0, 0.5)"]');
  106.                                    hideElement('.details');
  107.                                    hideElement('img[src*="countryLeagues"]');
  108.                                    
  109.                                    // Hapus script ads
  110.                                    removeElement('script[src*="adsbygoogle"]');
  111.                                    removeElement('script[src*="pagead"]');
  112.                                    
  113.                                    // Tambahkan CSS untuk memastikan elemen tetap tersembunyi
  114.                                    const style = document.createElement('style');
  115.                                    style.textContent = `
  116.                                        .banner-content-wrapper, #tableStats, #voteLeft, #voteRight,
  117.                                        .adsbygoogle, ins, iframe, .ads, .ad-container, #ads,
  118.                                        [id*="ads"], [class*="ads"],
  119.                                        #facebookButton, #whatsappButton,
  120.                                        [href*="facebook.com/sharer"], [href*="wa.me"],
  121.                                        [style*="margin:2px;font-size:10px;text-align:center;"],
  122.                                        [style*="overflow: hidden;height: 18px;margin-top: 5px"],
  123.                                        [style*="background-color: rgba(0, 0, 0, 0.5)"],
  124.                                        .details,
  125.                                        img[src*="countryLeagues"] {
  126.                                            display: none !important;
  127.                                            visibility: hidden !important;
  128.                                            opacity: 0 !important;
  129.                                            pointer-events: none !important;
  130.                                            height: 0 !important;
  131.                                            margin: 0 !important;
  132.                                            padding: 0 !important;
  133.                                        }
  134.                                        
  135.                                        /* Hapus margin bawah yang tidak perlu */
  136.                                        body {
  137.                                            margin-bottom: 0 !important;
  138.                                            padding-bottom: 0 !important;
  139.                                        }
  140.                                        
  141.                                        /* Hapus div kosong di bawah */
  142.                                        div[style*="clear:both;height:100px"] {
  143.                                            display: none !important;
  144.                                        }
  145.                                    `;
  146.                                    document.head.appendChild(style);
  147.                                    
  148.                                    // Jalankan fungsi ini setiap 1 detik untuk memastikan elemen tetap tersembunyi
  149.                                    setInterval(function() {
  150.                                        hideElement('#facebookButton');
  151.                                        hideElement('#whatsappButton');
  152.                                        hideElement('[href*="facebook.com/sharer"]');
  153.                                        hideElement('[href*="wa.me"]');
  154.                                        hideElement('[style*="margin:2px;font-size:10px;text-align:center;"]');
  155.                                        hideElement('div[style*="clear:both;height:100px"]');
  156.                                        hideElement('[style*="overflow: hidden;height: 18px;margin-top: 5px"]');
  157.                                        hideElement('[style*="background-color: rgba(0, 0, 0, 0.5)"]');
  158.                                        hideElement('.details');
  159.                                        hideElement('img[src*="countryLeagues"]');
  160.                                    }, 1000);
  161.                                })();
  162.                                """.trimIndent(),
  163.                                 null
  164.                             )
  165.                         }
  166.                     }
  167.  
  168.                     with(settings) {
  169.                         javaScriptEnabled = true
  170.                         domStorageEnabled = true
  171.                         userAgentString = "Mozilla/5.0 (Linux; Android 10; Mobile) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36"
  172.                     }
  173.  
  174.                     loadUrl(url)
  175.                     onWebViewCreated(this)
  176.                 }
  177.             },
  178.             modifier = Modifier.fillMaxSize()
  179.         )
  180.  
  181.         // Loading indicator
  182.         if (isLoading) {
  183.             Box(
  184.                 modifier = Modifier
  185.                     .fillMaxSize()
  186.                     .background(MaterialTheme.colorScheme.background.copy(alpha = 0.8f)),
  187.                 contentAlignment = Alignment.Center
  188.             ) {
  189.                 CircularProgressIndicator(
  190.                     color = MaterialTheme.colorScheme.primary
  191.                 )
  192.             }
  193.         }
  194.     }
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement