Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制外部站点上的链接在iOS或Android应用程序上的UIWebView之外打开_Android_Ios_Uiwebview_Android Webview - Fatal编程技术网

强制外部站点上的链接在iOS或Android应用程序上的UIWebView之外打开

强制外部站点上的链接在iOS或Android应用程序上的UIWebView之外打开,android,ios,uiwebview,android-webview,Android,Ios,Uiwebview,Android Webview,有没有办法防止我的网站在任何iOS或Android应用程序的UIWebView中被打开,比如用特殊方式格式化URL?这些应用程序不是我自己的,因此呼叫来自我的页面,而不是应用程序 最好是,当应用程序尝试从UIWebView中打开“我的网站”上的页面时,它会自动在Safari或本机浏览器应用程序中打开页面,而不是在用户应用程序中打开页面 否则,看起来我必须确定页面是否在UIWebView中打开,然后限制访问。否。浏览器只是一个应用程序。使用webview的浏览器应用程序与其他应用程序之间没有具体区

有没有办法防止我的网站在任何iOS或Android应用程序的
UIWebView
中被打开,比如用特殊方式格式化URL?这些应用程序不是我自己的,因此呼叫来自我的页面,而不是应用程序

最好是,当应用程序尝试从
UIWebView
中打开“我的网站”上的页面时,它会自动在Safari或本机浏览器应用程序中打开页面,而不是在用户应用程序中打开页面


否则,看起来我必须确定页面是否在
UIWebView
中打开,然后限制访问。

否。浏览器只是一个应用程序。使用webview的浏览器应用程序与其他应用程序之间没有具体区别。javascript浏览器检测的链接在这种情况下几乎毫无用处。应用程序可以将其用户代理设置为所需的任何设置,包括与本机浏览器应用程序使用的相同的用户代理。基本上,任何您试图用来检测默认浏览器的东西都可以被另一个应用程序模仿。

您可以将自己应用程序中的用户代理更改为特定的东西,然后使用javascript进行检测

您还可以从iOS代码中调用webview中的javascript函数,这样您就可以在应用程序发出调用之前等待显示内容


虽然这些东西可以很容易地模仿,并且不会阻止忽略javascript的刮板,但不太可能有人会经历所有的麻烦。如果你想得到进一步的保护,你必须引入某种形式的身份验证。

A-1没有评论,它是自己的-1…-1,我特别说过“这些是我不拥有的应用,所以电话来自我的页面,而不是应用。”我建议你只允许从你自己的应用访问(通过更改用户代理),阻止来自未设置UA的任何其他应用程序的访问。