かを検出する振ジェスチャーにPhoneGap0.8?
-
18-09-2019 - |
質問
を使用していPhoneGap0.8ていただきたいと思いますように検出する基本的な振るジェスチャー.また関連するスニペット:
http://groups.google.com/group/phonegap/browse_thread/thread/25178468b8eb9e9f
http://phonegap.pbworks.com/Handling-Shake-Events
もし電話をかけてきました。残念ながら、書類のう少し時代遅れでは、APIリファレンスのためのPhoneGapはバンチテストを行っております。かでんして知られるか。
場を提供できる短いスニペットの揺れ検出のためのコードPhoneGapい作品というの扱いになります。りの時間!
解決
最初のリンクを使用 PhoneGap.Gesture
, る調査を実施しているのは、同じでは存在しない(少なくともiphone)0.8.これは、最近のポストものの場合は、所定の手続きが追加されています。しんの使用によってはそれ以降の改正によ0.8
い振るジェスチャサポートをphonegapアプリ'広'phonegapとしております。が最初の警告:
Appleと判断PhoneGap0.8可能として提出する。ここでは基本的に延長線上でも非常に簡単なもの)をPhoneGap0.8がリスクの除去が可能になります。このアプリを開発しこのためではなく、承認プロセスな助言を行されます。
でもここだけOS3.0+による利用の新しい UIEventSubtypeMotionShake
API
またはiPhone固有のものです。ご希望の場合はクロスプラットフォーム機能のPhoneGapのこの答えとさせていただきますまないと快適を実施、ネイティブ側での変更は、他のプラットフォーム(androidなど)。この場合に対するものと待つだけで公式phonegapリリースを支援することになります
下記コードを追加しますPhoneGapViewController.m
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (UIEventSubtypeMotionShake == motion)
{
[webView stringByEvaluatingJavaScriptFromString:@"navigator.myext.onShakeGesture();"];
}
}
そして追加することjavascriptのモジュール myext.js
/* We need PhoneGap.js to be loaded to work properly before we can initialise so wait for it here */
(function()
{
var timer = setInterval(function()
{
if (typeof(PhoneGap == 'object'))
{
clearInterval(timer);
myExtInit();
}
}, 1);
})();
function MyExt()
{
// initialization
this.callbacks = {
onShakeGesture: []
};
}
/* Called by ObjectiveC side when a shake gesture is detected */
MyExt.prototype.onShakeGesture = function()
{
for (var i = 0; i < this.callbacks.onShakeGesture.length; i++)
{
var f = this.callbacks.onShakeGesture[i];
f();
}
};
MyExt.prototype.addShakeGestureListener = function(shakeCallback)
{
if (typeof(shakeCallback) == 'function')
{
this.callbacks.onShakeGesture.push(shakeCallback)
}
};
function myExtInit()
{
// Init phonegap extension specific objects using PhoneGap.addConstructor
PhoneGap.addConstructor(function() {
if (typeof navigator.myext == "undefined") navigator.myext = new MyExt();
});
}
あるとすmyext.js 皆さんのHTMLコンテンツ <head>
部直後へのリンク phonegap.js
<script type="text/javascript" charset="utf-8" src="myext.js"/>
利用からスクリプト例の原因となる警告がない):
function watchShake() {
var cb = function(){
navigator.notification.alert("Shake it!");
};
navigator.myext.addShakeGestureListener(cb);
}