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. 支持到 ... 
随机推荐
- 深度漫谈数据系统架构——Lambda architecture
			https://mp.weixin.qq.com/s/whmhm2yzug2WVdH3dTq8hg 
- LOJ10069 TREE
			题目描述 原题来自:2012 年国家集训队互测 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有 need 条白色边的生成树.题目保证有解. 输入格式 第一行 V,E,need 分 ... 
- LOJ10104Blockade
			POI 2008 Byteotia 城市有 n 个城镇,m 条双向道路.每条道路连接两个不同的城镇,没有重复的道路,所有城镇连通.输出 n 个数,代表如果把第i 个点去掉,将有多少对点不能互通. 输 ... 
- Java进阶专题(二十二) 从零开始搭建一个微服务架构系统 (上)
			前言 "微服务"一词源于 Martin Fowler的名为 Microservices的,博文,可以在他的官方博客上找到http:/ /martinfowler . com/art ... 
- KVM(虚拟机的迁移)
- CCF-交通规划-dijkstra+贪心
			交通规划 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统. 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成 ... 
- postgres-网络传输安全-openssl
			网络传输安全 默认情况下pg服务端和客户端之间的数据传输是明文传输,有一定的安全隐患.pg中可以使用ssl进行安全的tcp/ip连接,以密文的形式进行数据的安全传输. 这个特性要求在客户端和服务器都安 ... 
- JavaScript 、TypeScript 中的 Boolean
			boolean 是 JavaScript 中一种有趣的原始数据类型.在TypeScript中,非严格模式下("strictNullChecks": false),它总共允许4个值 ... 
- 【函数分享】每日PHP函数分享(2021-2-6)
			array_combine - 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 说明: array_combine ( array $keys , array $values ) : ... 
- Maven三种打包方式jar war pom
			1.pom工程 用在父级工程或聚合工程中.用来做jar包的版本控制.必须指明这个聚合工程的打包方式为pom 2.war工程 将会打包成war,发布在服务器上的工程.如网站或服务.在SpringBoot ... 
