OC原生代码/webview与js/网页交互的最好方式
来源:互联网 发布:河北js防水厂家 编辑:程序博客网 时间:2024/05/17 03:08
利用OC提供的<JavaScriptCore/JavaScriptCore.h>去实现js与oc的交互
第一步继承代理@interface WebViewViewController ()<UIWebViewDelegate>
第二步self.webCtrl.delegate =self; //设置代理
第三步 在实现的协议方法里写上定义js对象的方法
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
JSContext *context = [self.webCtrl valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
//定义好JS要调用的方法
IOSBridge = [[GLBL_APP alloc] init];
context[@"IOSBridge"] = IOSBridge;
}
第四步 定义和实现js相应的类和实现相应功能代码
#import<Foundation/Foundation.h>
#import<JavaScriptCore/JavaScriptCore.h>
@protocolPublicProtocol<JSExport>
//允许网页app访问的对象属性/方法
-(void)login;
-(void)shareSong:(NSString*)songId :(NSString*)callback;
@end
@interface GLBL_APP : NSObject<PublicProtocol>
@property(nonatomic,strong)NSString *callbackName;
@end
#import"GLBL_APP.h"
@interface GLBL_APP()
{
}
@end
@implementation GLBL_APP
//去登录
-(void)login{
dispatch_async(dispatch_get_main_queue(), ^{//始终在主进程中进行
if(![KeychainManager islogin]){
[KeychainManager gotoLogin];
}
});
}
//分享
-(void)shareSong:(NSString*)songId :(NSString*)callback{
if(![KeychainManager islogin]){
[KeychainManager gotoLogin];
return;
}
//分享
ShareView *shareView = [[ShareView alloc]initWithFrame:CGRectZero];
//赋值歌曲信息
[UserServices
getSongInfoWithSongId:songId userId:[KeychainManager readUserId] completionBlock:^(int result, id responseObject) {
NSDictionary *data=responseObject[@"data"];
shareView.songData = data;
}];
// SongModel *playingMusic = [MusicPlayTools shareMusicPlay].model;
// dfShareView.songData = [playingMusic dictionaryRepresentation];
[shareView showView];
if(callback){
self.callbackName = callback;
}
}
@end
第五步在js中调用
if(IOSBridge){
IOSBridge.shareSong(1207,'test');
}
第六步 在oc里执行JS
NSString *textJS = [NSString stringWithFormat:@"%@()",actionName];
[context evaluateScript:textJS];
}
0 0
- OC原生代码/webview与js/网页交互的最好方式
- iOS 基于JavaScriptCore 不等webView加载完毕就交互,网页获取原生内容。 webView的高级用法之JS交互,js与oc的相互调用
- JS与原生OC的三种交互方式
- OC与JS交互 -- 原生
- iOS原生代码通过webView与js脚本交互
- WebView OC与js交互
- webview与js的交互方式
- WebView 与JS 的交互方式
- Android WebView与 JS 的交互方式
- android学习之 webview 原生与js的交互
- Android-WebView与原生JS的数据交互
- Android WebView实现原生与JS的交互
- android WebView的使用,js与原生交互
- webView网页中JS调原生OC方法与JS注入
- WebView与JS交互方式
- WebView与 JS 交互方式
- webView 网页 的JS交互
- OC 与JS(WebView)交互
- 1003. 我要通过!(20) PAT
- 如何在Model Sim SE中添加库以仿真ISE的IP核
- 进程与线程的一个简单解释
- Linux学习之七(chown、chgrp、chmod)
- HADOOP 2.x 完全分布式集群环境搭建
- OC原生代码/webview与js/网页交互的最好方式
- MPAndroidChart 之LineChart(1)
- 啊啊啊
- python基础知识-列表
- linux下postgresql的备份与恢复
- hibernate 自定义枚举类型映射
- 在 Java 中使用 JSON
- Android 身份证扫描
- 不使用USERADD,手动添加用户