Comments (8)
NSURLProtocol 拦截处理wkwebview的请求,导致网页中的post请求httpbody,httpbodystream 是空的,才找到你的这个hook方式,但是发现有bug,能处理ajax方式的post请求,但是不能处理form表单的form.submit这种提交,求解决
from kkjsbridge.
form表单form.submit走的不是ajax,ajax hook拦截不到。
有两种方式你可以考虑:
1、替换表单的提交为ajax形式
2、增加黑名单机制,针对这类链接不要使用离线包机制
from kkjsbridge.
@karosLi 2、增加黑名单机制,针对这类链接不要使用离线包机制
问一下这句什么意思?
使用registerSchemeForCustomProtocol方法,并注册NSURLProtocol子类,来加载本地缓存文件。这个应该是整个APP的行为。怎么通过黑名单,来禁止一些链接使用离线包呢
from kkjsbridge.
类似于这样,有一个统一的方法可以开启和关闭离线包功能。是否关闭的逻辑,你可以通过服务器端后台下发一些H5链接的黑名单列表,然后再下面几个入口做判断是否需要关闭离线包功能。
- 首次同步请求
- 链接跳转之前 (decidePolicyForNavigationAction)
- (void)enableOffineH5:(BOOL)enable {
if (enable) {
_jsBridgeEngine.config.enableAjaxHook = YES;
[NSURLProtocol wkWebView_registerScheme:@"http"];
[NSURLProtocol wkWebView_registerScheme:@"https"];
} else {
_jsBridgeEngine.config.enableAjaxHook = NO;
[NSURLProtocol wkWebView_unregisterScheme:@"http"];
[NSURLProtocol wkWebView_unregisterScheme:@"https"];
}
}
from kkjsbridge.
@karosLi decidePolicyForNavigationAction里做开关,不会发生两个webview同时加载,一个开启缓存,一个不需要缓存,发生需要缓存的资源,请求没有发到本地吗?
from kkjsbridge.
一般的话还是一个webview在加载,你要是有两个webview同时加载加载场景,那就不行。
不过最好还是建议替换表单的提交为ajax形式,避免开关的维护。
from kkjsbridge.
一般的话还是一个webview在加载,你要是有两个webview同时加载加载场景,那就不行。
不过最好还是建议替换表单的提交为ajax形式,避免开关的维护。
大概明白了。谢谢解答
from kkjsbridge.
新的版本 KKJSBridge 1.1.1
可以通过 form.submit() 提交表单了
from kkjsbridge.
Related Issues (20)
- 页面中iframe内页调用native方法之后,回调函数不执行
- window.prompt("KKJSBridge", messageString)不触发UIDelegate回调方法 HOT 4
- url参数包含中文,利用 requestId 生成新的 url就会有问题 HOT 5
- 如何实现重定向页面的跳转 HOT 4
- 用了这个解决了ajax请求body丢失的问题后又出现xhr.upload.addeventlistener 失效的问题 HOT 1
- cookie问题请教 HOT 2
- H5离线包如果使用虚拟域名加载可以支持吗? HOT 1
- 使用测试Demo加载百度,打开百度新闻视频类加载不了
- 302 重定向后 cookie 出错
- Demoy源码
- crash:NSOperationQueue 0x282bedca0 (QOS: UNSPECIFIED) HOT 1
- ajax同步请求这里为啥直接弹alert了大佬
- 如果是使用Ajax Hook 部分 API + NSURLProtocol会不会app store审核能过吗? HOT 1
- 复用时,H5 跳转页面,点导航返回异常 HOT 1
- iframe 的请求,body 是空的
- websocket拦截不了
- -[__NSArrayM bytes]: unrecognized selector sent to instance
- Google CapTcha HOT 1
- Hook后无法正常打开网页 HOT 1
- 使用KKWebView后js交互方法执行异常
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kkjsbridge.