zoukankan      html  css  js  c++  java
  • iOS实现 webView loadHTMLString加载外部css、js样式

    记录一下。

    webview(或wk)用 loadHTMLString加载内容时 ,如果只是单纯的html内容,样式等都写在内部,直接设置baseURL为nil即可。

    不过当html里包含外部样式或调用外部js文件时,就需要通过baseurl设置一下路径。

    [_webView loadHTMLString:html baseURL:myUrl];

    举个最简单例子:

    <html>
    
    <head>
        <link rel="stylesheet" href="testwai.css">
    </head>
    
    <body>
        123
        i'm content!
    </body>
    
    </html>

    这里的html内部,有一个外部css引用,假设这个css文件在项目里

    我们可以实现:

    -(void) loadBundle{
        NSMutableString *html = [NSMutableString string];
        [html appendString:@"<html><head>"];
        [html appendFormat:@"<link rel="stylesheet" href="testwai.css"></head>"];
        [html appendString:@"<body><p>qfdkjeakofjadfdsjf</p></body></html>"];
        
        NSURL *myUrl = [NSURL fileURLWithPath:[NSBundle mainBundle].bundlePath];
        [_webView loadHTMLString:html baseURL:myUrl];
        
    }

    这里,重点在于这个baseURL参数,由于在项目里,所以路径用 [NSBundle mainBundle].bundlePath 获取即可。

    同理如果是沙盒路径:

    -(void) loadLocal{
        NSMutableString *html = [NSMutableString string];
        [html appendString:@"<html><head>"];
        [html appendFormat:@"<link rel="stylesheet" href="testwai.css"></head>"];
        [html appendString:@"<body><p>qfdkjeakofjadfdsjf</p></body></html>"];
        
        NSString *cssUrl = [NSString stringWithFormat:@"%@",NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)];
        NSURL *myUrl = [NSURL fileURLWithPath:cssUrl];
        [_webView loadHTMLString:html baseURL:myUrl];
        
    }

    示例demo下载

    测试项目里,点击下图这个即可。

  • 相关阅读:
    鹰牌陶瓷签约亿客CRM系统 建材行业进入CRM时代
    CRM成为大数据落地的关键
    客户流失了怎么办?
    亿客CRM研发公司简介
    CRM销售管理软件让销售管理成为企业的助力
    CRM帮助企业的营销管理
    浅析移动CRM的客户价值细分
    CRM规划和执行战略
    信息化的先锋CRM
    SaaS的应用将弱化大小企业间竞争差距
  • 原文地址:https://www.cnblogs.com/yajunLi/p/9620689.html
Copyright © 2011-2022 走看看