我想在应用中发送短信,这些短信是在同一个应用中打开其他视图的链接。就像通知文本消息,其中包含指向应用程序中其他视图的链接。因此,最好的方法是插入URL方案myAppName://someQuery?blablabla=123
,然后依次触发openURL
命令并打开该特定视图。
从最终用户隐藏网址方案的最佳做法是什么?它看起来很丑陋,也不想创建最终用户可以将值传递给url方案的可能性。
我的选择:
<a href=myAppName://someQuery?blablabla=123">Test</a>
,但这会影响性能,因为我需要继续将属性文本分配给textView,这非常慢,并且有错误。到目前为止,我有最好的选择2.只是想知道是否有其他好的想法......
感谢您的帮助
答案 0 :(得分:4)
您可以加密参数字符串,然后将其作为消息发送
加密的网址格式:
myAppName://encrypted_query
现在,当您在应用中接听电话时,应该从网址中提取encryptedt_data
并在实际执行任何操作之前对其进行解密。
解密后的网址格式:
myAppName://someQuery?blablabla=123
我相信这是完成这项工作的最佳和最简单的方法。有关加密/解密的最佳做法,请检查此AES Encryption for an NSString on the iPhone和this。
只要您不关心安全性,就可以始终使用缩小的加密字符串来缩小URL。该选项在Github库中给出。
答案 1 :(得分:1)
因此,最好的方法是插入URL方案
myAppName://someQuery?blablabla=123
,然后依次触发openURL
命令并打开该特定视图。
我假设您正在使用网络视图,这就是您希望以这种方式处理事情的原因。但是你知道新WKScriptMessageHandler
类中的WKWebView
协议吗?
如果您在网络上嵌入了onclick='window.webkit.messageHandlers.yourHandlerName.postMessage(yourUserData)'
,并通过WKUserContentController
的{{1}}设置了一个或多个脚本消息处理程序,则会调用他们的WKWebView
方法-userContentController:didReceiveScriptMessage:
作为邮件正文。