在我的应用程序中,我有一个 webview,它加载一个包含普通链接和自定义 URL 方案的页面,例如 myapp://id=1234。
现在,我正在尝试在此函数中捕获请求:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType{
NSLog(@"NSURLRequest = %@", [[request URL] absoluteString]);
}
打印出上面的网址给我这个:
http://localhost:8888/myapp://id=1234
这是我在 MAMP 上设置的本地主机,并将自定义 URL 附加到 URL 上。
我本来希望可以直接使用[请求方案],但现在这种情况,它只是返回“http”。有没有办法可以在我自己的应用程序中处理自定义 URL 方案?
此时,我希望能够执行以下操作:
- 用户正在使用 WebView
- 用户点击自定义网址链接 ( myapp://id=1234 )
- 我的应用处理自定义网址并将用户定向到另一个页面 ( http://www.someotherpage.com/?id=1234 )
谢谢!
最佳答案
当 URL 的冒号后面有一个双斜杠时(就像您的一样),下一部分应该类似于 userinfo@hostname:port
(都是 userinfo@
和 :port
可以省略)。由于 id=1234
看起来不像主机名,因此 URL 解析器不会将您的 URL 识别为绝对 URL。因此 URL 解析器将其视为相对 URL。
尝试将网址语法更改为 myapp:id=1234
或 myapp:///id=1234
。
关于iphone - 如何从 Web View 中捕获自定义 URL 方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8253834/