Giter Site home page Giter Site logo

xiubojin / jxbwkwebview Goto Github PK

View Code? Open in Web Editor NEW
735.0 10.0 115.0 905 KB

An component WebView for iOS base on WKWebView

License: MIT License

Ruby 4.77% JavaScript 1.45% HTML 3.82% Objective-C 89.42% Go 0.54%
ios wkwebview wkwebview-javascript-bridge wkwebview-sample wkwebview-bridge webview js-bridge

jxbwkwebview's Issues

关于 webView 被回收的时候为什么要再 loadRequest 一个空页面?

非常抱歉,又给您开了一个 issue,我在读您的代码的时候有一点不解。当一个 webView 被回收的时候,会先 clearBrowseHistory,然后再 [self loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:kWKWebViewReuseUrlString]]]; 插入一个空白页面。我想知道这个空白页面的作用是什么?

另外,在 webView 的 canGoForward 中也有相关根据 kWKWebViewReuseUrlString 来判断是否可以前进的方法,那么什么时候会产生后面的页面是自己插入的空白页面的情况呢?

是否会被苹果拒审

NSUrlProtocol拦截的时候browsingContextController 是苹果的私有类,会被静态检查吗

关于webview返回

接入我的工程后,打开百度链接,进入二级详情页,会出现偶尔无法正常返回,点返回按钮直接从webview返回到原生页面,这种情况什么问题造成的呢

FBRetainCycleDetector 检测到内存泄漏

Possibly Memory Leak.
In case that JXBWKWebView should not be dealloced, override -willDealloc in JXBWKWebView by returning NO.
View-ViewController stack: [
"TaskWallVC",
"UIView",
"JXBWKWebView",
]

怎么样可以实时截屏

WKWebview渲染机制,怎么样可以做到截屏,UIWebview是可以做到的,例如,设置contengOffset, 进行屏幕截图。

关于h5端写法

您好,前端调用原生API必须固定这样写么:window.JXBJSBridge.call({
})

登录状态的同步

楼主,我先打开一个web页面作为tab的第一个页面,随后再通过第二个web页面登录成功,如何让第一个web页面同步到登录状态呢?现在是再打开新的web页面都是有登录状态的,就是第一个已经初始化的页面同步不了登录状态,求助 @xiubojin

主动或被动触发内存不足warnning时发生闪退JXBWKWebView.dealloc

[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification object:nil];主动或被动触发内存不足warnning时发生闪退, “Cannot form weak reference to instance (0x7fa86b05e800) of class JXBWKWebView. It is possible that this object was over-released, or is in the process of deallocation.
部分堆栈信息如下
20 -[WKWebView(ExternalNavigationDelegates) unUseExternalNavigationDelegate] + 5062368 (WKWebView+ExternalNavigationDelegates.m:259)
21 -[JXBWKWebView dealloc] + 5038792 (JXBWKWebView.m:57)
22 CoreFoundation 0x00000001b80d912c 0x1b80c9000 + 65836
23 -[JXBWKWebViewPool _clearReusableWebViews] + 5044196 (JXBWKWebViewPool.m:145)
主动触发warnning后闪退,异常断点停在上述方法中的
[self setNavigationDelegate:[self originalNavigationDelegate]];这行代码。

image

Completion handler passed to -[_WKWebViewDelegateDispatcher webView:decidePolicyForNavigationAction:decisionHandler:] was not called

你好,
我们在使用你这个库的时候,发现bugly上面有很多关于这个得报错。

正常使用没有问题。但是打开APP,然后推到后台,再打开其他app让可用内存变低后,就会收集到这个BUG

可用内存大小 | 25.32 MB ( 2.56% ) |
可用存储空间 | 14.53 GB ( 24.38% )
Bugly SDK版本号 | 2.5.0
使用时长: 1 小时 45 分 36 秒

这个时长算少的,基本都是隔夜这种情况。

容器内webview的预加载性能没有明显改善

实际测试了几十次(ios12,iphone8,4g网络,release版本),发现_prepare是否开启对网页的加载速度几乎没有影响(预计在几十ms以内,因为网络波动,无法更精确的看出)。
我使用的是CFAbsoluteTimeGetCurrent的高精度时间戳,记录了发起页面打开的点击到页面didFinishLoad的时间。

请教下作者有没有做过相关的profiling啊?还是说在老版本的系统和设备上可以获得较大的提升?

关于webView拦截

请问有shouldStartLoadWithRequest相关的wenbview拦截实现么?我下了demo好像没发现这个方法

Ajax post 请求丢失 body

//获取bodyParam
NSString *bodyParam = request.allHTTPHeaderFields[@"bodyParam"];
NSData *bodyData =[bodyParam dataUsingEncoding:NSUTF8StringEncoding];
newRequest.HTTPMethod = @"POST";
newRequest.HTTPBody = bodyData;

代码中这段,只是解决首次请求的body丢失问题。

readme 更新下 go环境配置

使用vim打开.bash_profile进行编辑,i进行编辑,编辑完成后:wq退出,编辑内容如下:

export GOPATH=/Users/<your name>/Documents/go    //更改为Documents
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

//增加一个步骤 使用cd ~切换到根目录 输入 source .bash_profile
(4)切换到Documents文件夹,创建go文件夹,再在go文件夹下分别创建binsrc文件夹,src就是以后存放项目的文件夹.

(5)在终端输入go env命令查看配置是否正确,GOBIN有值表示配置没问题.

(6)在本工程内搜索文件夹GoProject > src > OfflineServer,将OfflineServer文件夹拷贝至Douments > go > src目录下. //更改为Documents

(7)切换至Documents > go > src //更改为Documents

Cookie

Hi,我看你Demo中关于Cookie的例子接口已经废弃,不过在JXBWebViewController中有cookie的设置属性,interceptRequestWithNavigationAction也注解说可以设置cookie,这两者设置有什么区别么?是否可以在Demo中新增Cookie的设置操作呢?

cookie的设置

请问下,我通过你的demo测试发现我把原生cookie设置的相关代码去掉,在wkwebview的一个页面,网页设置了cookie,退出后,重新进入浏览器还是可以有cookie的,但是如果你的网页不是通过getReusedWebViewForHolder初始化的就没有这个cookie了,不是很理解,这个cookie同步真实起作用的哪个

关于模板渲染

您好,我在您的 Demo 中没有看到关于 HTML 模板渲染的相关逻辑啊。

didFinishNavigation不回调

同样的url,自己在一个vc里初始化一个wkwebview,加载结束后会回调didFinishNavigation代理方法,但是作者这个库里未执行didFinishNavigation方法,求教

关于页面拦截JS-confirm函数白屏问题

runJavaScriptConfirmPanelWithMessage
这个函数弹出的alertvc,将app推到后台,再回到前台,页面会白屏,点击任何一个alert 按钮
之后恢复,请问是复用引起的问题吗?

关于H5页面中AJAX请求拦截问题

H5页面中的ajax请求,我们根本就拦截不到吧。使用urlprotocol的时候body已经是null了。
你文章中说将body当做header存起来,并且将http更改为post是在这里处理吗?
谢谢回答

MEM LEAKS

__block id observer = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note)

你好。
使用内存泄漏跟踪工具,检测到这里有内存泄漏。

期待你的回复。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.