最善の方法は、次の2つの例を組み合わせて、自分で行うことです。
function nativeDoStuff() {
if (androidbridge != null {
androidbridge.doStuff();
}
else {
//construct url
window.location = "myiphonescheme://dostuff";
}
考えてみると、野心的な場合は、簡単なjavascriptオブジェクトをコーディングしてそれを実行できます。
function NativeAppBridge () {
function runMethod(methodName, params) {
if (androidbridge != null {
// If the android bridge and the method you're trying to call exists,
// we'll just call the method directly:
if (androidbridge[methodName] != null) {
androidbridge[methodName].apply(this, params);
}
}
else {
// building the url is more complicated; best I can think
// of is something like this:
var url = "myiphonescheme://" + methodName;
if (params.length > 0) {
url += "?"
var i = 0;
for (param in params) {
url += "param" + i + "=" + param;
++i;
if (i < params.length) {
url += "&";
}
}
}
}
}
}
その場合、それを使用するのは次のように簡単です。
var bridge = new NativeAppBridge();
function onClick() {
bridge.runMethod("doStuff", null);
}
これを頭のてっぺんからコーディングしたので、現時点ではテストする時間がないことに注意してください。ただし、大きな間違いをしなければ、十分に機能するはずです。