Coder Social home page Coder Social logo

Form表单问题 about kkjsbridge HOT 8 CLOSED

karosli avatar karosli commented on July 26, 2024
Form表单问题

from kkjsbridge.

Comments (8)

dhui68 avatar dhui68 commented on July 26, 2024

NSURLProtocol 拦截处理wkwebview的请求,导致网页中的post请求httpbody,httpbodystream 是空的,才找到你的这个hook方式,但是发现有bug,能处理ajax方式的post请求,但是不能处理form表单的form.submit这种提交,求解决

from kkjsbridge.

karosLi avatar karosLi commented on July 26, 2024

form表单form.submit走的不是ajax,ajax hook拦截不到。
有两种方式你可以考虑:
1、替换表单的提交为ajax形式
2、增加黑名单机制,针对这类链接不要使用离线包机制

from kkjsbridge.

linwkr avatar linwkr commented on July 26, 2024

@karosLi 2、增加黑名单机制,针对这类链接不要使用离线包机制
问一下这句什么意思?
使用registerSchemeForCustomProtocol方法,并注册NSURLProtocol子类,来加载本地缓存文件。这个应该是整个APP的行为。怎么通过黑名单,来禁止一些链接使用离线包呢

from kkjsbridge.

karosLi avatar karosLi commented on July 26, 2024

类似于这样,有一个统一的方法可以开启和关闭离线包功能。是否关闭的逻辑,你可以通过服务器端后台下发一些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.

linwkr avatar linwkr commented on July 26, 2024

@karosLi decidePolicyForNavigationAction里做开关,不会发生两个webview同时加载,一个开启缓存,一个不需要缓存,发生需要缓存的资源,请求没有发到本地吗?

from kkjsbridge.

karosLi avatar karosLi commented on July 26, 2024

一般的话还是一个webview在加载,你要是有两个webview同时加载加载场景,那就不行。
不过最好还是建议替换表单的提交为ajax形式,避免开关的维护。

from kkjsbridge.

linwkr avatar linwkr commented on July 26, 2024

一般的话还是一个webview在加载,你要是有两个webview同时加载加载场景,那就不行。
不过最好还是建议替换表单的提交为ajax形式,避免开关的维护。

大概明白了。谢谢解答

from kkjsbridge.

karosLi avatar karosLi commented on July 26, 2024

新的版本 KKJSBridge 1.1.1

可以通过 form.submit() 提交表单了

from kkjsbridge.

Related Issues (20)

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.