ios 与 html 5 交互 的实现
来源:互联网 发布:杰森斯坦森 知乎 编辑:程序博客网 时间:2024/05/01 06:58
ios 与 html 5 交互 的实现
function connectWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge)
} else {
document.addEventListener('WebViewJavascriptBridgeReady', function() {
callback(WebViewJavascriptBridge)}, false)
}
}
var app = {
setImageList:function(wgImageList) {
connectWebViewJavascriptBridge(function(bridge) {
bridge.callHandler('setImageList', wgImageList, function(response) {})
});},
showImage:function(url) {
connectWebViewJavascriptBridge(function(bridge) {
bridge.callHandler('showImage', url, function(response) {})
});},
version:function(){
return 2;
}
}
function getContentHeight()
{
return document.getElementById("content").offsetHeight;
}
function setHtmlFontSize(size) {
document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust = size + "%";
$(window).resize();
return getContentHeight();
}
initApp();
#define INVOKEJSOCBRIDGE_FILE_NAME @"JsInvokeOCBridge.js.txt"
#import "InvokeJsOCBridge.h"
#import "WebViewJavascriptBridge.h"
@interface InvokeJsOCBridge ()
/*** oc 与 js 交互桥梁(通道) ***/
@property (strong, nonatomic) WebViewJavascriptBridge *wbJSBridge;
@end
@implementation InvokeJsOCBridge
#pragma mark - 注入js
+ (void)registerJS:(UIWebView *)webview {
NSString *filePath = [[NSBundlemainBundle] pathForResource:INVOKEJSOCBRIDGE_FILE_NAMEofType:nil];
NSString *js = [NSStringstringWithContentsOfFile:filePath encoding:NSUTF8StringEncodingerror:nil];
[webview stringByEvaluatingJavaScriptFromString:[NSStringstringWithFormat:@"%@",js]];
}
#pragma mark - 初始化
- (instancetype)initWithParentVC:(DetailViewController *)parentVC{
if(self = [superinit])
{
// *** 初始化交互桥梁(通道)
self.wbJSBridge = [WebViewJavascriptBridgebridgeForWebView:parentVC.webViewwebViewDelegate:parentVC.webView handler:^(id data, WVJBResponseCallback responseCallback) {}resourceBundle:nil];
// *** 注入js
[InvokeJsOCBridge registerJS:parentVC.webView];
// * js 回调 oc操作
[self registerInvoker:parentVC];
}
return self;
}
#pragma mark - 链接js与oc交互方法
- (void)registerInvoker:(id<InvokeJsOcBridgeDelegate>) invoker{
// *** 注册 setImageList(wgImageList) ->获取图片列表信息
[self.wbJSBridgeregisterHandler:@"setImageList" handler:^(id data, WVJBResponseCallback responseCallback) {
// NSLog(@"data = %@", data);
[invoker setImageList:data];
}];
// *** 注册 showImage ->获取图册信息
[self.wbJSBridgeregisterHandler:@"showImage" handler:^(id data, WVJBResponseCallback responseCallback) {
[invoker showImage:data];
}];
// // *** 注册 setTocList -> 获取目录列表信息
// [self.wbJSBridge registerHandler:@"setTocList" handler:^(id data, WVJBResponseCallback responseCallback) {
// NSLog(@"data = %@", data);
//// [invoker setTocList:data];
// }];
//
// // *** 注册 showToc -》获取单个目录信息
// [self.wbJSBridge registerHandler:@"showToc" handler:^(id data, WVJBResponseCallback responseCallback) {
// NSLog(@"data = %@", data);
//// [invoker showToc:data];
// }];
//
// // *** 注册 setCurrentHeadLine
// [self.wbJSBridge registerHandler:@"setCurrentHeadLine" handler:^(id data, WVJBResponseCallback responseCallback) {
// NSLog(@"data = %@", data);
//// [invoker setCurrentHeadLine:data];
// }];
//
// // *** 注册 setPageInfo
// [self.wbJSBridge registerHandler:@"setPageInfo" handler:^(id data, WVJBResponseCallback responseCallback) {
// NSLog(@"data = %@", data);
//// [invoker setPageInfo:data];
// }];
}
#pragma mark - 设置网页字体大小
+ (float)setHtmlFontSize:(UIWebView *)webview textSize:(NSInteger)textSize;
{
if(WF_DEVICE_IPad)
{
textSize += 20;
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
});
return [[webviewstringByEvaluatingJavaScriptFromString:[NSStringstringWithFormat:@"setHtmlFontSize('%d')", (int)textSize]]floatValue];
}
- ios 与 html 5 交互 的实现
- iOS中HTML与OC的交互实现
- iOS的UIWebView与html的交互
- html网页与iOS的简单交互
- html与iOS/Android的兼容交互
- iOS - html 与 oc交互
- IOS 原生与HTML交互
- iOS与Unity3d的交互实现
- iOS与Unity3d的交互实现
- 用PhoneGap Plugin实现html与Objc的交互
- Qt5.6 c++与网页html/js的交互实现
- ios 进阶 -- webview 与html 页面交互
- iOS 与JS Html常见交互
- html与javascript的交互
- flash与html的交互
- iOS OC与JS的交互(JavaScriptCore实现)
- iOS OC与JS的交互(WebViewJavascriptBridge实现)
- iOS下OC与JS的交互(WKWebview-MessageHandler实现)
- @ 在 C# 中的用法
- 算法--生成子集
- 2015.3.26昨日面试
- 一个Java对象到底占用多大内存?
- linux下安装python3
- ios 与 html 5 交互 的实现
- ZEMAX中的非球面参数解释
- 大二了,开始记录点东西吧,为未来做点准备。
- 新手学习java web项目的web.xml
- UVa #10048 Audiophobia (例题11-5)
- Fixing Ubuntu Error: Failed to load libGL.so
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android Action总结
- PDF怎么转换成word