Ser*_*gel 2 javascript objective-c ios
我有一个IOS应用程序,里面有一个Web浏览器.
显示此Web浏览器时,它会导航到Internet上的页面,例如http://myexample.com/myiosapp.
是否可以在此网站上放置一个javascript代码,当下载到手机时,它与本机应用程序进行通信?它可以调用Objective-C方法,还是写一些东西到这个应用程序的存储空间?
防爆.myexample.com/myios应用上托管的代码:
function saveSomeString() {
xcode.Save("somestring");
}
Run Code Online (Sandbox Code Playgroud)
应调用名为Save的Objective-C函数,该函数将传入的字符串参数保存到本地存储.
是的,你可以,但它有点hacky.
在Objective-C方面:
基本上,在UIWebView中,您将使用在URL请求开始之前调用的方法shouldStartLoadWithRequest(来自UIWebViewDelegate):
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
Run Code Online (Sandbox Code Playgroud)
在Javascript方面:
您的javascript代码将导航到您将按上述方法过滤的"假"网址.就像是:
window.location = "js2objc://save:param";
Run Code Online (Sandbox Code Playgroud)
回到Objective-C方面:
在我之前提到的方法中,您查找关键字js2objc(或您选择的任何一个),然后提取信息并采取任何适当的操作:
if([[url scheme] isEqualToString:@"js2objc"]){
// extract the parameters and save them, o do whatever action you need
return NO; // so the UIWebView doesn't actually follow the url
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
635 次 |
| 最近记录: |