Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Javascript 如何确定网站是在iPhone/Android浏览器上打开的,还是在iPhone/Android应用程序web视图中打开的?_Javascript_Android_Ios_Webview_Uiwebview - Fatal编程技术网

Javascript 如何确定网站是在iPhone/Android浏览器上打开的,还是在iPhone/Android应用程序web视图中打开的?

Javascript 如何确定网站是在iPhone/Android浏览器上打开的,还是在iPhone/Android应用程序web视图中打开的?,javascript,android,ios,webview,uiwebview,Javascript,Android,Ios,Webview,Uiwebview,目标是确定在中打开的网站 设备浏览器 或者在本机应用程序web视图中 正在寻找适用于Android和iOS的解决方案 您可以使用mobileesp提供的mdetect.js文件。 查看以下链接: 您可以使用mobileesp提供的mdetect.js文件。 查看以下链接: iPhone this.webView.getSettings().setUserAgentString( this.webView.getSettings().getUserAgentString() +

目标是确定在中打开的网站

  • 设备浏览器
  • 或者在本机应用程序web视图中
  • 正在寻找适用于Android和iOS的解决方案

您可以使用mobileesp提供的mdetect.js文件。 查看以下链接:

您可以使用mobileesp提供的mdetect.js文件。 查看以下链接:
iPhone

this.webView.getSettings().setUserAgentString(
    this.webView.getSettings().getUserAgentString() 
    + " "
    + getString(R.string.user_agent_suffix)
);
更改应用程序中的UserAgent

// Modify the user-agent
NSString* suffixUA = @"AppName";
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero]; 
NSString* defaultUA = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSString* finalUA = [defaultUA stringByAppendingString:suffixUA];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:finalUA, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
现在您可以通过Javascript进行检查:

function isIOS() {
    return /iPhone|iPad|iPod/i.test(navigator.userAgent);
}

function isIOSInApp() {
    return isIOS() && /AppName/i.test(navigator.userAgent); 
}
function isAndroid() {
    return /Android/i.test(navigator.userAgent);
}

function() isNativeApp {
   return isAndroid() && /AppName\/[0-9\.]+$/.test(navigator.userAgent);
}
适用于Android:

创建时的活动

this.webView.getSettings().setUserAgentString(
    this.webView.getSettings().getUserAgentString() 
    + " "
    + getString(R.string.user_agent_suffix)
);
Values.XML

<string name="user_agent_suffix">AppName/1.0</string>

iPhone

this.webView.getSettings().setUserAgentString(
    this.webView.getSettings().getUserAgentString() 
    + " "
    + getString(R.string.user_agent_suffix)
);
更改应用程序中的UserAgent

// Modify the user-agent
NSString* suffixUA = @"AppName";
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero]; 
NSString* defaultUA = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSString* finalUA = [defaultUA stringByAppendingString:suffixUA];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:finalUA, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
现在您可以通过Javascript进行检查:

function isIOS() {
    return /iPhone|iPad|iPod/i.test(navigator.userAgent);
}

function isIOSInApp() {
    return isIOS() && /AppName/i.test(navigator.userAgent); 
}
function isAndroid() {
    return /Android/i.test(navigator.userAgent);
}

function() isNativeApp {
   return isAndroid() && /AppName\/[0-9\.]+$/.test(navigator.userAgent);
}
适用于Android:

创建时的活动

this.webView.getSettings().setUserAgentString(
    this.webView.getSettings().getUserAgentString() 
    + " "
    + getString(R.string.user_agent_suffix)
);
Values.XML

<string name="user_agent_suffix">AppName/1.0</string>

为什么要这样做?到目前为止,您自己尝试了什么?我必须禁用网站上的某些功能,具体取决于网站是在本机应用程序还是移动浏览器中启动的。为什么要这样做?到目前为止您自己尝试了什么?我必须禁用网站上的某些功能,具体取决于网站是在本机应用程序还是移动浏览器中启动的浏览器