注册 登录
主题 : wkwebview怎么注入一个js对象,让h5那边可以轮询检测到~
级别: 新手上路
UID: 513622
精华: 0
发帖: 19
可可豆: 91 CB
威望: 91 点
在线时间: 258(时)
注册时间: 2015-10-14
最后登录: 2017-11-07
0 楼:  发表于: 2017-07-11 11:10    发自: Web Page
来源于 一般提问 分类

wkwebview怎么注入一个js对象,让h5那边可以轮询检测到~   

wkwebview怎么注入一个js对象,让h5那边可以轮询检测到~
前端那边需要轮询检测到我这个注入的对象才能进一步操作,有人知道怎么注入这个js对象么~
跪求大神啊!!!!!
跪求大神啊!!!!!
跪求大神啊!!!!!
跪求大神啊!!!!!
跪求大神啊!!!!!
跪求大神啊!!!!!
跪求大神啊!!!!!
跪求大神啊!!!!!

关键词: ios 开发 wkwebview
级别: 新手上路
UID: 513622
精华: 0
发帖: 19
可可豆: 91 CB
威望: 91 点
在线时间: 258(时)
注册时间: 2015-10-14
最后登录: 2017-11-07
1 楼:  发表于: 2017-07-11 11:28    发自: Web Page
回 楼主(JGGYANG) 的帖子
别沉啊!!!
级别: 骑士
状态: 连续签到 - [396天]
UID: 552064
精华: 0
发帖: 250
可可豆: 2494 CB
威望: 1703 点
在线时间: 725(时)
注册时间: 2016-03-22
最后登录: 2017-11-16
2 楼:  发表于: 2017-07-11 11:52    发自: Web Page
NSMutableString *javascript = [NSMutableString string];
[javascript appendString:@"xxxxxx"];

//javascript 注入
WKUserScript *noneSelectScript = [[WKUserScript alloc] initWithSource:javascript
                                                        injectionTime:WKUserScriptInjectionTimeAtDocumentEnd
                                                        forMainFrameOnly:YES];

WKUserContentController *userContentController = [[WKUserContentController alloc] init];
[userContentController addUserScript:noneSelectScript];
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.userContentController = userContentController;

这个?

级别: 骑士

状态: 连续签到 - [136天]
UID: 159156
精华: 0
发帖: 275
可可豆: 1478 CB
威望: 1119 点
在线时间: 889(时)
注册时间: 2012-08-03
最后登录: 2017-11-13
3 楼:  发表于: 2017-07-11 11:58    发自: Web Page
可以试试  JavaScriptCore js交互
We Can Manage!
级别: 新手上路
UID: 513622
精华: 0
发帖: 19
可可豆: 91 CB
威望: 91 点
在线时间: 258(时)
注册时间: 2015-10-14
最后登录: 2017-11-07
4 楼:  发表于: 2017-07-11 14:39    发自: Web Page
回 2楼(RainBow_F) 的帖子
我的需求是这样的:定义NATIVE全局方法:需NATIVE配合在H5的执行环境中,找到window对象,并注入原生CFBH5Thirdparty对象(IOS 请在page finish时机注入,页面会进行轮询检查),即提供JS调NATIVE的执行环境~感谢大神
级别: 新手上路
UID: 513622
精华: 0
发帖: 19
可可豆: 91 CB
威望: 91 点
在线时间: 258(时)
注册时间: 2015-10-14
最后登录: 2017-11-07
5 楼:  发表于: 2017-07-11 14:44    发自: Web Page
回 3楼(reylen) 的帖子
好的,我试试
级别: 骑士
状态: 连续签到 - [396天]
UID: 552064
精华: 0
发帖: 250
可可豆: 2494 CB
威望: 1703 点
在线时间: 725(时)
注册时间: 2016-03-22
最后登录: 2017-11-16
6 楼:  发表于: 2017-07-11 15:19    发自: Web Page
回 4楼(JGGYANG) 的帖子
恩,那就预先把这写 JS 写好,需要的时候调这个方法就好,感觉是这样.
级别: 骑士
状态: 连续签到 - [396天]
UID: 552064
精华: 0
发帖: 250
可可豆: 2494 CB
威望: 1703 点
在线时间: 725(时)
注册时间: 2016-03-22
最后登录: 2017-11-16
7 楼:  发表于: 2017-07-11 15:21    发自: Web Page
回 6楼(RainBow_F) 的帖子
上面的是 JS 注入的方法,
还一种是交互的 ,蛮常用的
- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ _Nullable)(_Nullable id, NSError * _Nullable error))completionHandler;
感觉这个你应该了解,
具体使用哪个就看你实际需求所需而定了.
级别: 新手上路
UID: 513622
精华: 0
发帖: 19
可可豆: 91 CB
威望: 91 点
在线时间: 258(时)
注册时间: 2015-10-14
最后登录: 2017-11-07
8 楼:  发表于: 2017-07-11 15:39    发自: Web Page
回 7楼(RainBow_F) 的帖子
问题是注入原生的对象,就是注入oc对象怎么注入呢,也是用你那个注入js的方法么
级别: 骑士
状态: 连续签到 - [396天]
UID: 552064
精华: 0
发帖: 250
可可豆: 2494 CB
威望: 1703 点
在线时间: 725(时)
注册时间: 2016-03-22
最后登录: 2017-11-16
9 楼:  发表于: 2017-07-11 15:42    发自: Web Page
回 8楼(JGGYANG) 的帖子
NSString *appCallWeb = [NSString stringWithFormat:@"Elf.AppCallWeb('%@','%@');", MsgAddToObtainedBook, [dictionaryToJson(dic) URLEncodedString]];
[wkWebView evaluateJavaScript:appCallWeb completionHandler:^(id _Nullable result, NSError * _Nullable error) {
     NSLog(@"result --- %@\n error --- %@",result, error);
}];
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部