1

OK、私はiPhone用のアプリケーションを作成しています(まだ学習していて、Objective-CとXcodeを理解しています)。それはかなりうまくいっています。私が作成しているアプリケーションは、すでにAndroid用に作成されています。アプリケーションがAndroid用の「ハードコードされた」Webページを開いている部分があり、それは私が問題を抱えている部分です。そのWebページのJavaScriptには、次のようなコードの一部があります。

<a onclick="Android.setCategory('US');" class="navigator_item cat_US">US</a>

私が興味を持っているのはそれだけです。たとえば、その「onclick」部分を文字列として取得したいと思います。したがって、その部分がクリックされるたびに、それを文字列として取得して、後で独自のロジックを実行したり、メソッドなどを呼び出したりできるようにします。使ってみました

shouldStartLoadWithRequest

しかし、クリックしても何もログアウトできませんでした。私はここで何か間違ったことをしていますか?たぶん、JavaScriptの知識が不足していることが問題であり、基本を理解していませんが、onclickの引用符から文字列にその部分を取得するだけで可能であると思います。それが私が必要なものすべてです。

とても重要なことを一つ忘れました。Androidで使用されているjavaScriptに触れることができません。これが、Androidアプリの現在の動作です。だから私はこの「ひも」のことをしたいのです。

stringByEvaluatingJavaScriptFromStringとdocument.getElementsByClassNameJavaScriptメソッドでできることはありますか?

乾杯ペップ:)

4

1 に答える 1

2

ターゲットを変更する自由がある場合は、次のonclickようなことができます。

<a onclick="setCategory('US');">US</a>

Webページで、UIWebViewに対して次のようにします。

[uiWebView stringByEvaluatingJavaScriptFromString:  @"function setCategory(category) {alert("Category is " + category);};"];

カテゴリを設定するときに実行したいiOSロジックがある場合、私が使用する手法はカスタムURLスキームです。たとえば、setCategoryは次のようになります。

setcategory://US/

JavaScriptを次のように変更します

[uiWebView stringByEvaluatingJavaScriptFromString:  @"function setCategory(category) {window.location = 'setcategory://'+category+'/';};"];

そしてあなたのshouldStartLoadWithRequest方法で:

  NSString* scheme = [[request URL]scheme];
  NSString* host   = [[request URL]host]; // "host" is actually the category

  if ([scheme isEqualToString:@"setcategory"]) {
    // Do so logic to set the category
  }
于 2013-02-24T16:00:10.617 に答える