Comments (12)
@yuzhoulangzik Confirmed. I guess it's a conflict between JSPatch and UIWebvView, for both of them use JSCore.framework. It seems that it's unable to init UIWebView in JSPatch. I start the UIWebview in appdelegate
and it worked.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIWebView *view = [[UIWebView alloc]init]; //Useless. Just to load the UIWebview framework.
view.frame = CGRectZero;
[JPEngine startEngine];
//.......
return YES;
}
from jspatch.
@albert438
//defineClass('UIWebView',{
// loadRequest :function(request){
// self.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext")
// self.ORIGloadRequest(request)
// }
// })
overwrite loadRequest it work
from jspatch.
What did you mean?
from jspatch.
loadweb : function() {
var webView = UIWebView.alloc().initWithFrame(self.view().frame())
webView.setDelegate(self)
var url = NSURL.URLWithString("https://www.baidu.com/")
var request = NSURLRequest.alloc().initWithURL(url)
self.view().addSubview(webView)
webView.loadRequest(request)
}
from jspatch.
missed require()
var webView = require('UIWebView').alloc().initWithFrame(self.view().frame())
from jspatch.
@albert438 had add require('UIWebView'),
from jspatch.
in our app, I write [JPEngine startEngine] in
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}
and all the viewcontroller that contains a webview will crash.
I think [JSPatch startEngine] should be called after webview calss something init (lazy load).
from jspatch.
Now we can use -performSelectorInOC
API to avoid the conflict of JavaScriptCore and UIWebView:
loadweb : function() {
return UIWebView.performSelectorInOC('new', [], function(ret) {
var webview = ret;
webView.setDelegate(self)
var url = NSURL.URLWithString("https://www.baidu.com/")
var request = NSURLRequest.alloc().initWithURL(url)
self.view().addSubview(webView)
webView.loadRequest(request)
})
}
from jspatch.
@albert438 this can be work for me ,but send a new version to appstore
from jspatch.
@bang590 问下邦神,在需要覆盖的方法里没有直接调用uiwebview,但是某些代码会唤起带webview的viewcontroller,这种情况应该对需要覆盖的整个方法执行performSelectorInOC 吗?
from jspatch.
上段代码
defineClass("AppDelegate", {
application_openURL_sourceApplication_annotation: function(application, url, sourceApplication, annotation) {
if (url.absoluteString().isEqualToString("***://")) {
return 1
}
// self.ORIGapplication_openURL_sourceApplication_annotation(application, url, sourceApplication, annotation);
}
})
其中注释掉的那句,能否使用PerformSelectorInOC呢?
from jspatch.
大神,UIWebView.performSelectorInOC这个api在初始化UIWebView之后,WebView里面的点击事件全部失效了!!
from jspatch.
Related Issues (20)
- 本地测试js多文件的时候使用这个方法没有效果? HOT 1
- 工程报错无法运行 HOT 1
- cocopods 1.6.6
- 调用super后死循环
- 关于ios的热更 jspatch新的版本能通过苹果的审核了吗?
- 无法覆盖消息转发的那几个方法?
- NSString.stringWithFormat后面能用''单引号而非""双引号吗?
- ios13 Block报错
- 新的IMP的那段代码,怎么在运行时添加上去的?
- 最新的代码有内存泄漏 HOT 1
- Pod引入JSPatch,JPLoader的常量rootUrl无法在项目中更改
- js 中block回调给OC崩溃
- jspatch.com主机过期暂时无法访问 HOT 1
- 按照开发文档一步一步集成, 没报错误,也提示新的补丁请求成功,但是页面上UI没有改变。 HOT 5
- 这个库还在维护吗? HOT 2
- 沉浸式iOS热更新方案 HOT 2
- 请教unsigned long long 长整型 在 js 上的精度问题如何解决? HOT 1
- JS函数作为block参数给OC 闪退
- q.jspatch.com网站证书过期了,还维护吗?
- 证书还会更新吗? HOT 1
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 jspatch.