| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | 
							- //
 
- //  ASGoodsIntrouduceWebView.m
 
- //  Asteria
 
- //
 
- //  Created by xingyu on 2024/5/20.
 
- //
 
- #import "ASGoodsIntrouduceWebView.h"
 
- @interface ASGoodsIntrouduceWebView()<WKNavigationDelegate>
 
- @property (nonatomic, strong) WKWebView *wkWebView;
 
- @end
 
- @implementation ASGoodsIntrouduceWebView
 
- - (instancetype)initWithFrame:(CGRect)frame {
 
-     if (self = [super initWithFrame:frame]) {
 
-         
 
-         [self addSubview:self.wkWebView];
 
-         [self.wkWebView mas_makeConstraints:^(MASConstraintMaker *make) {
 
-             make.edges.mas_equalTo(0);
 
-             make.top.mas_equalTo(10);
 
-             make.width.mas_equalTo(KScreenWidth);
 
-             make.height.mas_equalTo(200);
 
- //            make.bottom.mas_equalTo(-10);
 
-         }];
 
-     }
 
-     return self;
 
- }
 
- - (void)loadWebUrlWithData:(GoodsInformationM *)model {
 
-     NSString *product_details= @"";
 
-     for (NSDictionary *dic in model.custom_attributes) {
 
-         NSString *tmpStr= MM_str(dic[@"attribute_code"]);
 
-         if ([tmpStr isEqualToString:@"feature"]) {
 
-             product_details = MM_str(dic[@"value"]);
 
-         }
 
-     }
 
-     NSString *htmlStr = [NSString stringWithFormat:@"<html> \n"
 
-                          "<head> \n"
 
-                          "<meta charset=\"utf-8\" /> \n"
 
-                          "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no\" /> \n"
 
-                          "<style> \n"
 
-                              "*{ \n"
 
-                                  "padding: 5; \n"
 
-                                  "margin: 0; \n"
 
-                              "} \n"
 
-                              "table{ \n"
 
-                                  "width: 100%%; \n"
 
-                                  "border: 1px solid #A8A8A8; \n"
 
-                                  "border-collapse:collapse; \n"
 
-                              "} \n"
 
-                              "th{ \n"
 
-                                  "width: 30.42%%; \n"
 
-                                  "min-height: 36px; \n"
 
-                                  "padding: 10px; \n"
 
-                                  "border: 1px solid #A8A8A8; \n"
 
-                                  "font-size: 12px; \n"
 
-                                  "font-weight: bold; \n"
 
-                                  "color: #000; \n"
 
-                              "} \n"
 
-                              "td{ \n"
 
-                                  "width: 69.58%%; \n"
 
-                                  "min-height: 36px; \n"
 
-                                  "padding: 10px; \n"
 
-                                  "border: 1px solid #A8A8A8; \n"
 
-                                  "font-size: 12px; \n"
 
-                                  "font-weight: 400; \n"
 
-                                  "color: #000; \n"
 
-                                  "line-height: 16px; \n"
 
-                                  "word-break: break-word; \n"
 
-                              "} \n"
 
-                          "</style> \n"
 
-                          "</head> \n"
 
-                          "<body style=\"font-family: -apple-system,Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol',sans-serif;\">%@</body> \n"
 
-                          "</html>",product_details];
 
-     [self.wkWebView loadHTMLString:htmlStr baseURL:nil];
 
- }
 
- #pragma mark WKNavigationDelegate 计算webView
 
- -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
 
-     @weakify(self)
 
-     [webView evaluateJavaScript:@"document.body.offsetHeight" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
 
-         @strongify(self)
 
-         CGFloat height = [result doubleValue]+40;
 
-         [self tool_webChangeFrame:height];
 
-     }];
 
- }
 
- -(void)tool_webChangeFrame:(CGFloat)height{
 
-     [self.wkWebView mas_updateConstraints:^(MASConstraintMaker *make) {
 
-         make.height.mas_equalTo(height);
 
-     }];
 
-     
 
-     if (self.loadFinishBlock) {
 
-         self.loadFinishBlock(height);
 
-     }
 
- }
 
- - (WKWebView *)wkWebView {
 
-     if(!_wkWebView){
 
-         NSString *injectionJSString = @"var script = document.createElement('meta');"
 
-         "script.name = 'viewport';"
 
-         "script.content=\"width=device-width, user-scalable=no\";"
 
-         "document.getElementsByTagName('head')[0].appendChild(script);";
 
-         
 
-         // CSS选中样式取消 ---禁用web 长按菜单里的查询、学习、共享等按钮,
 
-         NSString *css = @"body{-webkit-user-select:none;-webkit-user-drag:none;}";
 
-         NSMutableString *javascript = [NSMutableString string];
 
-         [javascript appendString:injectionJSString];
 
-         [javascript appendString:@"var style = document.createElement('style');"];
 
-         [javascript appendString:@"style.type = 'text/css';"];
 
-         [javascript appendFormat:@"var cssContent = document.createTextNode('%@');", css];
 
-         [javascript appendString:@"style.appendChild(cssContent);"];
 
-         [javascript appendString:@"document.body.appendChild(style);"];
 
-         
 
-         WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:javascript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
 
-         
 
-         WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc]init];
 
-         config.selectionGranularity = WKSelectionGranularityDynamic;
 
-         
 
-         WKUserContentController * wkUController = [[WKUserContentController alloc] init];
 
-         
 
-         [wkUController addUserScript:wkUScript];
 
-         
 
-         config.userContentController= wkUController;
 
-         WKPreferences *wkp = [WKPreferences new];
 
-         wkp.minimumFontSize = 12;
 
-         config.preferences = wkp;
 
-         _wkWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenWidth) configuration:config];
 
-         _wkWebView.navigationDelegate=self;
 
-         _wkWebView.backgroundColor=[UIColor colorWithHexString:@"#FFFFFF"];
 
-         _wkWebView.scrollView.scrollEnabled=NO;
 
-         _wkWebView.allowsLinkPreview = NO;
 
-         if(@available(iOS 16.4 , *)){
 
-             _wkWebView.inspectable = YES;
 
-         }
 
-     }
 
-     return _wkWebView;
 
- }
 
- @end
 
 
  |