实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(1)

简介: 实战教程·元宇宙来了,准备好你的电子名片了吗?

实战教程·元宇宙来了,准备好你的电子名片了吗?(八)


前提回顾

在上几个章节中,我们完成了Linkworld基本功能的搭建,也进一步了解了SwiftUI这一声明式语法的编程方式的魅力之处。

在本章中,我们继续学习本地化存储相关方法,那么让我们开始吧。

外链跳转:打开应用外浏览器

在之前的章节中,我们学习过使用WebKit在应用中打开Web网页的方法,这里再补充一个知识点— —如何唤起系统浏览器并打开网站。

在SwiftUI中唤起外链的方法是使用Link方法,和NavigationLink方式类似,NavigationLink导航跳转是在应用内跳转页面,而Link则是打开iOS本地浏览器并访问指定网站。

来到HomePageView页面,我们给创建一个新的按钮,如下代码所示:


// 打开浏览器按钮
func openWebBtn() -> some View {
    Image(systemName: "network")
        .font(.system(size: 17))
        .foregroundColor(.blue)
}

然后我们将按钮加到顶部导航菜单中,如下代码所示:


.navigationBarItems(leading: backBtn(),trailing: openWebBtn())

image.png

接下来我们来实现跳转方法,在openWebBtn中使用Link方法,如下代码所示:

css

复制代码

Link(destination: URL(string: "https://"+indexURL)!){
    Image(systemName: "network")
      .font(.system(size: 17))
      .foregroundColor(.blue)
}

image.png

由于需要使用到系统浏览器做配合,因此需要“运行”模拟器设备上测试效果。如下图所示:

image.png

FileManager本地化存储

接下来我们来学习本地化存储,将请求回来的JSON文件数据和本地创建的数据缓存起来,在下一次打开时还可以操作上一次的数据。

我们来到ViewModel视图模型中,键入下面的代码:


// 获取设备上的文档目录路径
func documentsDirectory() -> URL {
    FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
}

FileManager是本地文件存储管理器,用于充当文件存储的中间桥梁。上述代码中我们创建了一个方法documentsDirectory允许开发者在可存取空间userDomainMask中使用沙盒documentDirectory,并返回一个URL路径。如此,文件存储器FileManager在整个应用中都可以被使用。

然后我们通过FileManager本地文件管理器访问放置数据的文件夹,我们可以放在plist文件中,如下代码所示:

// 获取plist数据文件的路径
func dataFilePath() -> URL {
    documentsDirectory().appendingPathComponent("Linkworld.plist")
}

上述代码中,我们操作的便是使用FileManager本地文件管理器获得Linkworld.plist文件的路径,便于我们操作plist文件。


相关文章
|
10月前
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(3)
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)
34 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(3)
|
10月前
|
JSON API 数据格式
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)(4)
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)
58 0
|
10月前
|
存储 XML Swift
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(2)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)
66 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(2)
|
10月前
|
存储 数据库 Swift
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(3)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)
61 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(3)
|
10月前
|
存储 前端开发 数据库
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(6)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)
52 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(6)
|
10月前
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(2)
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)
52 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(2)
|
10月前
|
存储 前端开发 Swift
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)(1)
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)
49 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)(1)
|
10月前
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)(2)
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)
53 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)(2)
|
10月前
实战教程·元宇宙来了,准备好你的电子名片了吗?(二)(2)
实战教程·元宇宙来了,准备好你的电子名片了吗?(二)
49 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(二)(2)
|
10月前
|
程序员 人机交互 Swift
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)(3)
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)
61 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)(3)