在UIViewController Xamarin iOS中从UIWebview捕获windows.external.notify发布的消息
我尝试从UIWebview登录,如果身份验证成功,那么我将使用脚本片段在UIViewController Xamarin iOS中从UIWebview捕获windows.external.notify发布的消息,xamarin,uiwebview,xamarin.ios,Xamarin,Uiwebview,Xamarin.ios,我尝试从UIWebview登录,如果身份验证成功,那么我将使用脚本片段window.external.notify获取一个字符串令牌和 但问题是,我无法在iOS webview中检测到任何代码片段来读取此通知脚本 我尝试了使用iwkscript消息处理程序的地方,但没有成功 你们能帮我在iOS上完成吗?我不久前为Azure访问控制服务做过类似的事情。代码可在此处找到: 基本上,这是在页面中注入一个Notify脚本,当调用该脚本时,它会导航到一个我知道的特定URL,并从中获取有效负载 privat
window.external.notify
获取一个字符串令牌在android中使用myWebView.AddJavascriptInterface(新的ExternalInterface(),“”)进行编码>和代码>
但问题是,我无法在iOS webview中检测到任何代码片段来读取此通知脚本
我尝试了使用iwkscript消息处理程序的地方,但没有成功
你们能帮我在iOS上完成吗?我不久前为Azure访问控制服务做过类似的事情。代码可在此处找到:
基本上,这是在页面中注入一个Notify脚本,当调用该脚本时,它会导航到一个我知道的特定URL,并从中获取有效负载
private const string ScriptNotify=@”
window.external={
“通知”:函数{
document.location=acs://settoken?token=“+s;
},
“通知”:函数{
document.location=acs://settoken?token=“+s;
}
};
";
因此,上面的代码导航到acs://settoken?token=
调用通知脚本时。您可以通过检查url方案在UIWebView.ShouldStartLoad
中检测到这一点。如果与notify脚本中的匹配,则完成
为了注入脚本,我实现了nsurlconnectionelegate
,在finishedload
覆盖中,我将其作为数据的一部分注入,并让UIWebView加载该内容。Master@Cheesebaron谢谢!我看到了你的代码片段,我有一个疑问,那就是我在webview中加载的URL已经有了这个脚本窗口。external.notify
,同时登录成功通知它。现在,还需要注入您提供的脚本吗?