相关疑难解决方法(0)

如何从Javascript调用Objective-C?

我有一个WebView,我想从JavaScript调用Objective-C中的一个视图.有人知道我怎么做吗?


我的ViewController中有这个代码:

- (BOOL)webView:(UIWebView *)webView2 
 shouldStartLoadWithRequest:(NSURLRequest *)request 
 navigationType:(UIWebViewNavigationType)navigationType {

 NSString *requestString = [[request URL] absoluteString];
 NSArray *components = [requestString componentsSeparatedByString:@":"];

 if ([components count] > 1 && 
  [(NSString *)[components objectAtIndex:0] isEqualToString:@"myapp"]) {
  if([(NSString *)[components objectAtIndex:1] isEqualToString:@"myfunction"]) 
  {

   NSLog([components objectAtIndex:2]); [[Airship shared] displayStoreFront]; //<- This is the code to open the Store
   NSLog([components objectAtIndex:3]); // param2
   // Call your method in Objective-C method using the above...
  }
  return NO;
 }

 return YES; // Return YES to make sure regular navigation works as …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch uiwebview

41
推荐指数
3
解决办法
5万
查看次数

如何在基于WebKit的应用程序中启用本地存储?

我有一个嵌入WebKit WebView的Cocoa/Objective-C应用程序.我需要打开数据库支持和本地存储.我知道它可以完成 - 我在Safari中工作 - 但我找不到如何在我自己的应用程序中设置它的示例.

我发现这个(未答复的)SO问题提供了一个例子,但正如原始海报所提到的那样,它不起作用.事实上,他使用的方法(setDatabasesEnabled,setLocalStorageEnabled)没有在我的WebKit.framework(Xcode 3.2.5)中定义,尽管如果我自己定义它们似乎存在它们.

任何人都可以提供一个如何为基于WebKit的Cocoa应用程序启用本地数据库存储的示例吗?非常感谢如果是这样!

更新:我有一些工作......我对"数据库"与"本地存储"感到困惑,这显然是完全不同的东西.这是有效的代码:

WebPreferences* prefs = [webView preferences];
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
[prefs setLocalStorageEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

这样可行,但它需要私有方法_setLocalStorageDatabasePath,这意味着我没有App Store.所以我现在修改过的问题是:有没有办法在使用私有方法的情况下完成这项工作?我在这个答案中找到了WebDatabaseDirectory首选项键,它控制着数据库的位置.但我无法在源中的任何位置找到相应的本地存储密钥.或者有没有办法强制本地存储使用数据库,所以WebDatabaseDirectory键?有任何想法吗?

webkit objective-c local-storage ios

12
推荐指数
1
解决办法
1万
查看次数