Tag: JavaScript

在关注输入时,iOS中忽略了固定/绝对定位

我正在使用Phonegap构建一个应用程序,我有一个标题,我已将其固定到视口顶部。 header { position: fixed; top: 0; width: 100%; height: 30px; background-color: red; z-index: 100; } 除非我点击输入字段并且键盘向上滑动,否则这可以按我的方式工作。 然后完全放弃定位。 标题在可见视图之外向上滑动。 它再次关闭键盘后返回原位。 我已经读过一些移动浏览器不关心定位固定和绝对定位,以确保可能很小的屏幕没有被固定元素覆盖。 这是真的? 有没有解决的办法? 我已经尝试在输入聚焦时将标题设置为绝对。 我在这里读到了它, http://dansajin.com/2012/12/07/fix-position-fixed/ 。 但是,它似乎对我不起作用。

React native Undefined不是对象(评估’_react3.default.PropType.shape’)

我正在学习React-native因为这个案例我想为IOS和Android创建导航,实际上,我遇到了一个错误 错误: React native Undefined不是对象(评估’_react3.default.PropType.shape’) 我的发展环境 操作系统:MACOS Sierra Clie:react-native-cli:2.0.1 React-native版本:react-native:0.49.3 我遵循官方反应原生教程 App.js import React, { Component } from ‘react’; import {Platform, StyleSheet, Text, View} from ‘react-native’; import Navigator from ‘react-native-deprecated-custom-components’; import MyScene from ‘./src/components/navigation/MyScene’; const instructions = Platform.select({ ios: ‘IOS: Press Cmd+R to reload,\n’ + ‘Cmd+D or shake for dev menu’, android: ‘Android : Double […]

在iOS上同时录制和播放(Phonegap build)

我正在使用Phonegap Build版本3.3.0开发iOS和Android应用程序。 应用的主要焦点是在后台播放另一个音频/音乐的录音。 对于这两个实例,我正在使用带有正确音频文件的phonegap media api进行录制(iOs – * .wav / Android – * .amr)和播放(iOs和Android – * .mp3)。 例: var audioRec = new Media(audioRecSrc, onSuccess, onError); audioRec.startRecord(); var audioPlay = new Media(audioPlaySrc, onSuccess, onError); audioPlay.play(); 示例适用于Android,没有任何问题。 录制声音并正常播放音乐。 但在iOS中只有一个是可能的。 无论哪种称为最后,播放或录制。 另一个返回错误代码-4 。 这是iOs上的Phonegap Media API的限制还是我错过了什么?

如何在Javascript中捕获文本选择更改的iOS Safari事件?

以下场景:在iOS Safari上选择文本时(假设为“普通”html页面),会出现蓝色叠加,表示您已选择特定段落。 此外,您可以更改该选择,以便更正您的初始选择区域。 当选择区域更改完成时,我很想准确捕获该事件。 是否有可能(如果是,如何?)在Javascript中捕获这样的事件? Thx提前。

Cordova闪屏改变了微调器的位置?

有谁知道如何修改Cordova闪屏微调器的位置? 我检查了文档,找不到任何信息。

防止在移动浏览器上滚动,而不会阻止输入聚焦

我在文档的touchstart上使用preventDefault()以防止在页面上滚动。 不幸的是,这防止了太多。 用户无法再将焦点放在输入上(并打开软键盘)。 使用jQuery focus(),我可以将焦点放在touchstart上的输入上。 这会在iOS上打开软键盘(大部分时间),但从不在Android上打开。 背景 : 我有一个网页,我想尽可能多的移动应用程序。 我只关心Android和iOS,但任何forms因素。 我首先使页面中的内容与屏幕大小完全相同。 这很好,直到用户将手指放在页面上。 我需要阻止用户滚动。 以下代码完成了此操作,但在两个操作系统上的方式略有不同。 $(document).on(‘touchstart’, function(e) { e.preventDefault(); }); 在iOS上,这可以防止弹性滚动:用户可以通过尝试滚动页面来显示网页后面的纹理。 这个function很适合常规网页,但在我的情况下,它会降低用户体验。 在Android上,防止我用来隐藏地址栏的方便黑客的启示。 Android浏览器以可见的地址栏开头,但当用户向下滚动页面时,它会消失。 要以编程方式强制浏览器隐藏地址栏,只需将此行代码添加到您在load时调用的函数中。 $(‘html, body’).scrollTop(1); 这是告诉Android浏览器我们已经滚动的hacky(但也是唯一的)方式,并且不再需要地址栏。 如果没有文件上的preventDefault,Android浏览器将允许滚动并显示地址栏。 因此,两个操作系统都有充分的理由在文档的每个touchstart上调用preventDefault(),但它可以防止太多。 点击输入字段不起作用。 使用jQuery focus()调用可以提供帮助,但只能打开iOS上的软键盘,而不是Android。 $(‘input’).on(‘touchstart’, function() { $(this).focus(); }); 如何阻止页面滚动,但使用浏览器本机function将焦点放在输入字段上? 注意:此代码 $(document).on(‘touchstart’, function(e) { if (e.target.nodeName !== ‘INPUT’) { e.preventDefault(); } }); 因为用户仍然可以滚动页面是有缺陷的,只要初始触摸源自输入字段内。

我可以从Javascript获得iOS6 IDFA吗?

iOS6为iOS6设备推出了IDFA“广告标识符”。 可以从iOS6设备上的Safari中运行的Javascript中检索此ID吗? 或者它是仅限应用程序的function?

以编程方式在UIWebView中选择文本

经过2天的研究,我问这个问题。 我已经阅读了stackoverflow和google中的所有相关问题和答案(包括这个问题,这是非常相似但没有答案)仍然无法找到解决方案。 希望有人能够提供帮助。 我有一个UIWebView,其中加载了一些文本。 我想以编程方式选择部分文本,就像用户长按它一样。 我已经尝试执行此javascript代码作为对点击的响应: function selectEl(x,y) { document.designMode = “on”; var el = document.elementFromPoint(x, y); var range = document.createRange(); range.selectNodeContents(el); var sel = document.getSelection(); sel.removeAllRanges(); sel.addRange(range); document.designMode = “off”; } 我已尝试过,无需在设计结束时将designMode更改为“off”。 我知道这段代码“选择”了正确的元素,因为如果我执行这个命令 document.execCommand(“BackColor”, false, “#ffffcc”); 它实际上突出显示了我单击的元素,但它不会导致选择文本。 关于如何实现这一点的任何想法?

对于所有平台(包括iOS,ANDROID),在Delphi XE6上通过javascript调用TWebBrowser的Delphi Delphi函数?

我需要在Delphi XE6上为Android和iOS创建一个应用程序。 这个应用程序最好使用TWebBrowser来显示谷歌地图,然后我需要从Delphi“发送”到javascript并从javascript“接收”命令到Delphi。 通过这种方式,我可以在地图上显示市场,然后知道用户何时点击标记。 我在网上发现这篇文章用Delphi代码执行javascript。 但我不知道如何从javascript调用delphi程序。 例如,我在Delphi上有这个程序: procedure JSFeekback(aParm1, aParm2, aParm3, aParm4: string); 我想在TWebBrowser上使用Javascript代码将其称为pass 4参数。 我发现了类似的问题,但仅适用于Windows应用程序,答案不适用于Android(我没有在iOS上试过)。

找不到变量:Safari上的Promise

我有一个我正在开发的网站,可以在Chrome桌面上完美运行(Windows 8.1和OS X Mavericks) 当我在iOS 7或Safari 7.0.2上运行它时,控制台出现错误,指出加载路径时出现错误:checkIfLoggedIn’ 它在消息中指定的成员不是路由,它是一个返回promise的方法。 当我通过ember代码调试以找出出错的地方时,我发现它拒绝承诺的原因是“找不到变量:承诺” 我不能在这里发布我网站上的实际代码,所以我开始创建一个再现错误的小提琴,我能够想出这个: http://jsfiddle.net/NQKvy/851/ 这适用于桌面版Chrome(Windows 8.1和OS X Mavericks),但在iOS 7或Safari 7.0.2上会向控制台抛出以下错误:ReferenceError:找不到变量:Promise’ 任何人都有任何想法为什么这不起作用? 回顾一下: 我已经在Chrome for Windows 8.1和OS X Mavericks上进行了测试 – 它有效 我已经在Chrome for iOS上进行了测试,但它无效 我已经在Safari for iOS和OS X Mavericks上测试过它并没有用 我根本没有在Android上测试过(我此时无法访问任何设备) 这让我相信这是一个Safari错误(如果我没记错的话)Chrome for iOS使用Safari控件来呈现页面而不是Chromium 这是我用来生成错误的代码: App.ready = function() { var asdf = new Promise(function (resolve) { var i = 1; […]