如何在iOS应用程序中持久化HTML文件?
我已经注册了我的应用程序,可以打开HTML文件。我想让应用程序保持它打开的最后一个HTML文件。。。如果我打开一个新的HTML文件,我希望它覆盖上一个打开的文件 我已尝试使用Documents目录,但它对我无效。我也尝试过使用如何在iOS应用程序中持久化HTML文件?,ios,objective-c,nsuserdefaults,nsfilemanager,appdelegate,Ios,Objective C,Nsuserdefaults,Nsfilemanager,Appdelegate,我已经注册了我的应用程序,可以打开HTML文件。我想让应用程序保持它打开的最后一个HTML文件。。。如果我打开一个新的HTML文件,我希望它覆盖上一个打开的文件 我已尝试使用Documents目录,但它对我无效。我也尝试过使用NSUserDefaults,但没有效果。以下是我目前拥有的: -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { ViewController *vc = (Vi
NSUserDefaults
,但没有效果。以下是我目前拥有的:
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
ViewController *vc = (ViewController *)self.window.rootViewController;
[vc loadFileWithUrl:url];
[[NSUserDefaults standardUserDefaults] setURL:[url fileReferenceURL] forKey:@"amd"];
return YES;
}
我完全终止应用程序,然后调用-(BOOL)application:(UIApplication*)application didnfinishlaunchingwithoptions:(NSDictionary*)launchOptions
。下面是该方法的外观:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *url = [[NSUserDefaults standardUserDefaults] URLForKey:@"amd"];
if (url)
{
ViewController *vc = (ViewController *)self.window.rootViewController;
[vc loadFileWithUrl:url];
}
return YES;
}
url
始终为零:(
PS:我还尝试将HTML文件存储在其字符串表示形式中,并且我能够将其保存在文档
文件夹中,但是当我尝试使用以下方式加载该字符串时:
[webView加载htmlString:htmlString]
页面从不加载。我认为这与Javascript有关,但我不太确定。当应用程序转到后台时,或者当您调用用户默认值上的-synchronize
时,会保存用户默认值。在开发时,您通常不会将应用程序放到后台,而只是通过XCode将其杀死,在这种情况下不保存任何内容。您可以通过按iPhone/iPad上的“主页”按钮并在1秒后在XCode中关闭应用程序来保存用户默认设置
另外,您应该在第一个方法中放入一条log语句,如
NSLog(@“将amd保存到%@”,[url fileReferenceURL]);
以确保它确实被保存了!您似乎忘记了调用
[[NSUserDefaults standardUserDefaults] synchronize];
将对持久域的任何修改写入磁盘并更新
将所有未修改的持久域复制到磁盘上的内容