SwiftUI render WKWebView
SwiftUI render WKWebView

//
// ContentView.swift
// webview-app
//
// Created by 夏凌晨 on 2020/10/27.
// Copyright 2020 webgeeker. All rights reserved.
//
import SwiftUI
struct ContentView: View {
var body: some View {
// Text("Hello, World!");
// SwiftUI_WKWebView(url: "https://cdn.xgqfrms.xyz");
SwiftUI_WKWebView(url: "https://cdn.xgqfrms.xyz")
.edgesIgnoringSafeArea(Edge.Set.top)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
/*
// SwiftUI_WKWebView(url: "https://cdn.xgqfrms.xyz");
no need ;
CompileDylibError: Failed to build ContentView.swift
Compiling failed: ';' statements are not allowed
*/
//
// SwiftUI_WKWebView.swift
// webview-app
//
// Created by 夏凌晨 on 2020/10/28.
// Copyright 2020 webgeeker. All rights reserved.
//
import SwiftUI
//import Foundation
import WebKit
struct SwiftUI_WKWebView: UIViewRepresentable {
var url: String;
func makeUIView(context: Context) -> WKWebView {
guard let url = URL(string: self.url) else {
return WKWebView();
}
let request = URLRequest(url: url);
let webview = WKWebView();
webview.load(request);
return webview;
}
func updateUIView(_ uiView: WKWebView, context: Context) {
//
}
}
update
//
// SwiftUI_WKWebView.swift
// webview-app
//
// Created by 夏凌晨 on 2020/10/28.
// Copyright 2020 webgeeker. All rights reserved.
//
import SwiftUI
//import Foundation
import WebKit
struct SwiftUI_WKWebView: UIViewRepresentable {
var url: String
func makeUIView(context: Context) -> WKWebView {
guard let url = URL(string: self.url) else {
return WKWebView()
}
let request = URLRequest(url: url)
let webview = WKWebView()
webview.load(request)
return webview
}
func updateUIView(_ uiView: WKWebView, context: Context) {
//
}
}
// Previews 入口
struct SwiftUI_WKWebView_Previews: PreviewProvider {
static var previews: some View {
// 联网的 URL, Canvas 必须开启 live preview, 动态的请求内容
SwiftUI_WKWebView(url: "https://cdn.xgqfrms.xyz")
.edgesIgnoringSafeArea(Edge.Set.top)
}
}
/*
// SwiftUI_WKWebView(url: "https://cdn.xgqfrms.xyz");
no need ;
CompileDylibError: Failed to build ContentView.swift
Compiling failed: ';' statements are not allowed
*/
JSBridge ???
refs
https://gist.github.com/xgqfrms/71a6f7471b79905fb53147b23805d382
https://www.youtube.com/watch?v=C5xxrCj8LC0
xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
SwiftUI render WKWebView的更多相关文章
- DDGScreenShot — 复杂屏幕截屏(如view ScrollView webView wkwebView)
写在前面 最近有这么一个需求,分享页面,分享的是web订单截图,既然是web 就会有超出屏幕的部分, 生成的图片还要加上我们的二维码,这就涉及到图片的合成了. 有了这样的需求,就是各种google.也 ...
- 用WKWebView 截取整个Html页面
以前使用UIWebview时,想截取整个页面,可以调整内部scrollView的frame,之后调用 scrollView的layer的 render 方法,很方便. 但是在WKWebView上,行不 ...
- DTCoreText 、WKWebView 、UIWebView的比较
DTCoreText .WKWebView .UIWebView的比较 HTML->View 数据解析: WebCore:排版引擎核心,WebCore包含主要以下模块:Loader, Parse ...
- React.render和reactDom.render的区别
刚开始学习react.js.发现网上的资料,有些是写着react.render,有些写着reactDom.render.觉得很奇怪就查阅了一下资料.解释如下: 这个是react最新版api,也就是0. ...
- WKWebView浅析
原文链接:supermokey WKWebView 一个WKWebView对象展示交互的web内容,例如应用于app内的浏览器.你可以在你的App中使用WKWebView. 综述 Important: ...
- iOS网络3—UIWebView与WKWebView使用详解
一.整体介绍 UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView.通过简单的测试即可发现UIWebView占用过多内存,且 ...
- WKWebView与JavaScript交互基础
login.html 代码 <!DOCTYPE html> <html> <head> <title>使用JavaScript</title> ...
- XF custom render 各平台实现类
目前的XF还是非常简陋的,所以存在大量的自定义工作.一般情况下我们只是要需要派生原生的XF控件,然后在各平台下修改其呈现方法. 所以了解每个XF控件在不同平台上呈现使用的控件类是有所必须要的.以下别人 ...
- IOS进阶之WKWebView
前言 Xcode8发布以后,编译器开始不支持IOS7,所以很多应用在适配IOS10之后都不在适配IOS7了,其中包括了很多大公司,网易新闻,滴滴出行等.因此,我们公司的应用也打算淘汰IOS7. 支持到 ...
随机推荐
- join 查询优化
在开发中往往会出现查询多表联查的情况,那么就会用到 join 查询. Join查询种类 为了方便说明,先定义一个统一的表,下面再做例子. CREATE TABLE `t2` ( `id` int(11 ...
- jQuery 勾选启用输入框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SQL函数知识点
SQL函数知识点 SQL题目(一) 1.查询部门编号为10的员工信息 select*from emp where empno=10; 2.查询年薪大于3万的人员的姓名与部门编号 select enam ...
- https://nginx.org/en/docs/http/request_processing.html
https://nginx.org/en/docs/http/request_processing.html
- (转载)微软数据挖掘算法:Microsoft顺序分析和聚类分析算法(8)
前言 本篇文章继续我们的微软挖掘系列算法总结,前几篇文章已经将相关的主要算法做了详细的介绍,我为了展示方便,特地的整理了一个目录提纲篇:大数据时代:深入浅出微软数据挖掘算法总结连载,有兴趣的童鞋可以点 ...
- 【转载】【网络安全】渗透中 PoC、Exp、Payload 与 Shellcode 的区别
原文地址 渗透中 PoC.Exp.Payload 与 Shellcode 的区别 概念 PoC,全称"Proof of Concept",中文"概念验证",常指 ...
- 初识 Nginx服务配置
Nginx 是一个免费的,开源的,高性能的HTTP服务器和反向代理,以及IMAP / POP3代理服务器. Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名.很多高知名度的网站 ...
- 高性能Web框架
不管 Web 前端架构运行机制还是 Web 后端架构中,网络是必不可少的且占分量很重.用户通过网络访问 Web 服务器,Web 后端架构中各种服务之间通过网络来进行通信和协作,网络是现代 Web 应用 ...
- Spark Straming,Spark Streaming与Storm的对比分析
Spark Straming,Spark Streaming与Storm的对比分析 一.大数据实时计算介绍 二.大数据实时计算原理 三.Spark Streaming简介 3.1 SparkStrea ...
- 杂论-FTP
FTP 一 简单介绍 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时, ...