iOS:添加书签到主屏幕

2019-04-02  本文已影响0人  春暖花已开
图一

图一的是我们操作完之后的 效果图。


写在最前:在阅读这篇文章的时候,你可能需要温习一下程序间的互调和传值,可以参考一下我的这篇文章。然后,我们可以根据传值,来跳转到不同的页面。在上篇文章中,给出了使用的演示,所以在这篇文章中,这个操作就不再给出。

图二为 文档目录结构。

图二

用到的三方库:pod 'CocoaHTTPServer'

步骤:
先配置好要分享的网页内容content.html,然后对content.html的内容做URI之后的字符串,复制到index.html的指定位置就可以了,下面给出了示例代码。

// 触发事件
- (void)shareLocalClick {
    
    // 配置 DDLog,只打印到控制台
    [DDLog addLogger:[DDTTYLogger sharedInstance]];
    
    // 初始化 server
    httpServer = [[HTTPServer alloc] init];
    
    // Tell the server to broadcast its presence via Bonjour.
    // This allows browsers such as Safari to automatically discover our service.
    [httpServer setType:@"_http._tcp."];
    
    // Bonjour这样的技术允许客户端在运行时动态地发现服务器的端口。但为了方便测试,通常指定一个端口
    [httpServer setPort:12345];
    
    // 从嵌套的Web文件夹里读取
    NSString *webPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Web"];
    [httpServer setDocumentRoot:webPath];
    
    [self startServer];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://127.0.0.1:12345"]];
}

- (void)startServer {
    NSError *error;
    if([httpServer start:&error]) {
        DDLogInfo(@"Started HTTP Server on port %hu", [httpServer listeningPort]);
    } else{
        DDLogError(@"Error starting HTTP Server: %@", error);
    }
}

content.html

<!DOCTYPE html>
<html>
<head>
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta content="text/html charset=UTF-8" http-equiv="Content-Type" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" />
    <link rel='apple-touch-icon' href='base64编码的图片'><!-- 注意点一 -->
    <title>粤省事</title>
</head>
<body>
    <!--    addicon 为我们自己App自定义的Scheme-->
    <a href="addicon://" id="qbt" style="display:none"></a>
    <span id="msg"></span>
</body>
<script>
    if (window.navigator.standalone == true) {
        var lnk = document.getElementById("qbt").click();
    } else {
        document.getElementById("msg").innerHTML='<div style="font-size:12px">这里可以添加引导页面</div>';
    }

</script>
</html>

index.html

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <!-- 注意点二 -->
    <meta http-equiv="refresh" content="0;URL= data:text/html;charset=utf-8,这儿传append一下`content.html`进行URI编码后的字符串">
</head>
</html>

工具推荐
图片转换Base64
字符串作为 URI 进行编码

参考
利用CocoaHttpServer搭建手机本地服务器
iOS添加快捷方式到桌面

上一篇下一篇

猜你喜欢

热点阅读