OC代碼:
-(void)rightBarButtonItemPressed{
NSString *js = @"document.getElementsByTagName('meta')['Description']['content']";
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"neisha_logo"]];
imageView.hidden=YES;
[self.view addSubview:imageView];
UIImage *image=[[SDImageCache sharedImageCache] imageFromDiskCacheForKey:_imageUrl];
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
[imageView sd_setImageWithURL:_imageUrl placeholderImage:[UIImage new] andType:3 completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
[MBProgressHUD hideAllHUDsForView:self.view animated:YES];
[self.webView.wkWebView evaluateJavaScript:js completionHandler:^(id _Nullable desc, NSError * _Nullable error) {
[[ThirdShareManager sharedInstance] shareItemWithTitle:_title description:desc image:image url:_url controller:self block:nil];
}];
}];
}
JS代碼:
rightBarButtonItemPressed: function() {
var js = "document.getElementsByTagName\('meta')['Description']['content']";
var imageView = UIImageView.alloc().initWithImage(UIImage.imageNamed("neisha_logo"));
imageView.setHidden(1);
self.view().addSubview(imageView);
var _imageUrl = self.valueForKey("_imageUrl");
var _url = self.valueForKey("_url");
var _title = self.valueForKey("_title");
console.log(_imageUrl);
var image = SDImageCache.sharedImageCache().imageFromDiskCacheForKey(_imageUrl);
MBProgressHUD.showHUDAddedTo_animated(self.view(), 1);
imageView.sd__setImageWithURL_placeholderImage_andType_completed(_imageUrl, UIImage.new(), 3, block("void, UIImage*, NSError*, SDImageCacheType, NSURL*", function(image, error, cacheType, imageURL) {
console.log(image);
MBProgressHUD.hideAllHUDsForView_animated(self.view(), 1);
self.webView().wkWebView().evaluateJavaScript_completionHandler(js, block("void, id, NSError", function(desc, error) {
ThirdShareManager.sharedInstance().shareItemWithTitle_description_image_url_controller_block(_title, desc, image, _url, self, null);
}));
}));
}
注:
OC中的字符串@"document.getElementsByTagName('meta')['Description']['content']"; 在JS中要寫成"document.getElementsByTagName('meta')['Description']['content']";
()前面要加上轉(zhuǎn)義字符\