如果网站在ipad safari中运行或在应用程序WebView中运行,是否有办法通过javascript进行区分?
如何检测用户是否正在使用webview for android或iOS浏览页面?
有各种贴遍计算器的解决方案,但我们没有一个防弹解决方案还为两个操作系统.
目标是if语句,例如:
if (android_webview) {
jQuery().text('Welcome webview android user');
} else if (ios_webview) {
jQuery().text('Welcome webview iOS user');
} else if (ios_without_webview) {
// iOS user who's running safari, chrome, firefox etc
jQuery().text('install our iOS app!');
} else if (android_without_webview) {
// android user who's running safari, chrome, firefox etc
jQuery().text('install our android app!');
}
Run Code Online (Sandbox Code Playgroud)
检测iOS webview(来源):
if (navigator.platform.substr(0,2) === 'iP'){
// iOS (iPhone, iPod, iPad)
ios_without_webview …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用WkWebKit在应用程序和页面之间来回交谈.我可以使用WkWebView evaluateJavascript方法让javaScript执行得很好,但是当我尝试在JavaScript页面上执行window.webkit.messageHandlers.myHandler.postMessage('hello world!')时,我发现window.webkit没有定义.
奇怪......我正在ios 8.4的iPad模拟器中运行.我认为这可以在原版8中使用,不是吗?
我找不到其他任何关于此的帖子,所以也许我做错了什么?
我甚至将我的Safari Developer连接到模拟器的浏览器,在控制台中我试着看看window.webkit是什么,当然,它不存在.
请注意,我添加了一个初始脚本,以便在页面加载时运行(我在javascript编辑器中看到了这一点 - 记录了消息).我还添加了一个脚本消息处理程序......
[编辑:在这里添加更多代码详细信息] 这是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSLog(@"main view Controller viewDidLoad called...");
// if we are running on an OLD ios (pre v8) WKWebView will not exist. So don't create it if it doesn't exist...
if (NSClassFromString(@"WKWebView")) {
// WKWebView cannot be dragged onto storyboard, so have to create it manually here.
// We have a …Run Code Online (Sandbox Code Playgroud) 我面临以下问题,我试图呈现一个modalViewController并使其覆盖整个屏幕,例如:
[controller setWantsFullScreenLayout:yes];
[myNavController presentModalViewController:controller animated:yes];
Run Code Online (Sandbox Code Playgroud)
结果是控制器没有覆盖整个屏幕,状态栏在顶部可见.我真的不明白为什么会这样.
ios ×3
javascript ×3
fullscreen ×1
ipad ×1
jquery ×1
webkit ×1
webview ×1
wkwebview ×1
xcode7 ×1