首页 > 其他分享 >Webview

Webview

时间:2024-11-01 10:20:18浏览次数:1  
标签:settings request import Webview true WebView android

import androidx.appcompat.app.AppCompatActivity;
import androidx.browser.customtabs.CustomTabsClient;
import androidx.browser.customtabs.CustomTabsIntent;
import androidx.browser.customtabs.CustomTabsServiceConnection;
import androidx.browser.customtabs.CustomTabsSession;

import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

import java.io.File;

/*
* vite
* */
public class MainActivity extends AppCompatActivity {

    @SuppressLint({"MissingInflatedId", "SetJavaScriptEnabled"})
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 初始化WebView
        WebView webView = findViewById(R.id.web_view);

        // 设置WebViewClient来处理页面加载
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                // 如果不是app内处理的链接,则使用Custom Tabs打开
                if (!request.getUrl().getHost().contains("yourdomain.com")) {
                    //                    openInCustomTabs(request.getUrl().toString());
                    return true; // 表示该链接已经被处理,不需要WebView加载
                }
                return super.shouldOverrideUrlLoading(view, request);
            }
            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                super.onReceivedError(view, request, error);
                Log.e("WebView Error", "Error code: " + error.getErrorCode() + ", Description: " + error.getDescription());
            }

            @Override
            public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
                super.onReceivedHttpError(view, request, errorResponse);
                Log.e("WebView HTTP Error", "Error code: " + errorResponse.getStatusCode() + ", Reason: " + errorResponse.getReasonPhrase());
            }
        });
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setDomStorageEnabled(true);
        settings.setCacheMode(WebSettings.LOAD_DEFAULT); // 或 LOAD_CACHE_ELSE_NETWORK 等,根据需要选择
        settings.setAppCacheEnabled(true);
        settings.setDatabaseEnabled(true);
        settings.setSupportZoom(true);
        settings.setBuiltInZoomControls(true);
        settings.setDisplayZoomControls(false);
        settings.setAllowContentAccess(true); // 允许内容访问
        settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); // 允许混合内容
        // 加载初始URL
        File crashReportsDir = new File(getCacheDir(), "WebView/Crash Reports");
        if (!crashReportsDir.exists() && !crashReportsDir.mkdirs()) {
            Log.e("WebView Error", "Failed to create Crash Reports directory");
        }
        try{
            webView.loadUrl("https://vite服务器地址");
        }catch (Exception e){
            e.printStackTrace();
        }

    }
    // 使用Custom Tabs打开链接
    private void openInCustomTabs(String url) {
        CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
        CustomTabsIntent customTabsIntent = builder.build();
        customTabsIntent.launchUrl(this, Uri.parse(url));
    }

}

 

标签:settings,request,import,Webview,true,WebView,android
From: https://www.cnblogs.com/xl-7951/p/18519612

相关文章

  • WebView2重装/WebView2安装
    问题描述最近运行某些程序时报错TheWebView2processcrashedandtheapplicationneedstoberestarted.解决方法我们只需要重新安装WebView2即可下载WebView2地址如下https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/?form=MA13LH#download下载图中......
  • 鸿蒙 Flutter 开发中集成 Webview
    鸿蒙Flutter开发中集成Webview主要有两种方案使用第三方库如使用flutter_inappwebview插件,在pubspec.lock文件中配置:flutter_inappwebview:git:url:https://gitee.com/openharmony-sig/flutter_inappwebview.gitpath:"flutter_inappwebview"编......
  • WebView2 拦截查看所有的请求
    有两种方式:1.使用devtoolprotocol://启用网络监控awaitwebView.CoreWebView2.CallDevToolsProtocolMethodAsync("Network.enable","{}");//注册Network.requestWillBeSent事件varrequestWillBeSentReceiver=webView.CoreWebView2.GetDevToolsProtocolEv......
  • Pywebview 5.2 storage_path传递参数参数无效
    背景pywebview5.2在我测试数据目录时,发现在启动界面后webview目录仍然为空deftest_storage_dir():window=webview.create_window('StorageDirectory',url='https://kimi.moonshot.cn/')webview.start(debug=True,private_mode=False,g......
  • # Cocos 2 使用 webview 嵌入页面,摄像头调用没权限问题
    Cocos2使用webview嵌入页面,摄像头调用没权限问题嗯,这么说呢,这篇博文看自己的实际需求哈,标题写的可能不是很准确。我这边呢,是遇到这样一个功能,就是有一个服务,他是的页面呢,是打开电脑的摄像头,需要在cocos程序里面呢,展示摄像头的实时画面。看上去挺简单哈,但是实际做起来,还是......
  • ifream跟webview 嵌套orchard core的登录
    orchardcore默认的安全策略很高。所以要设置后台要开启ocrs跟安全program.cs要配置cookie可以跨域。`builder.Services.ConfigureApplicationCookie(options=>{options.Cookie.SameSite=SameSiteMode.None;options.Cookie.SecurePolicy=......
  • Android与WebView(网页)的使用以及交互,阿里快手拼多多等7家大厂Android面试真题
    <?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android=“http://schemas.android.com/apk/res/android”android:layout_width=“match_parent”android:layout_height=“match_parent”android:orientation=......
  • pywebview 中错误使用async
    错误代码正确示例完整代码前端代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>pyw......
  • uniapp - 最新详细实现web-view网页与安卓苹果App端之间互相通信功能,苹果app/安卓app
    前言在uni-app项目开发中,详解实现web-view和App之间的互相通信完整流程及代码教程,Uniappapp端向webview网站传递数据,同时webview又可以向app端传递数据参数,完成二者的数据通信方案,支持嵌入本地移动端H5页面、第三方网站、自定义网页,附带各种常见问题,解决发送数据通信没......
  • EmbeddedBrowserWebView.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个EmbeddedBrowserWebView.dll文件(挑选合适的......