Android操作Htmlは他のAPPを開きます。


Androidプログラマーはますます多くなってきました。一部の地域では需要以上の状況が現れています。背景から見れば、Androidの生態系チェーンはだんだん理性的になってきます。そして人材や開発ツールをどんどん更新していきます。数年前のeclipseは非常に人気がありました。今はAndroid studioは良い経験によって、もう多くの人がAndroid studioに転戦して開発を行っています。だからこれも多様性の表現です。無駄話が多いです。人が多いのは問題ではないです。大切なのは自分がこの仕事を担当する能力を持っていることです。新しい技術を勉強して、自分を更新することです。
今はどのようにHtmlの中で携帯電話の中のAPPを開けたらいいですか?この需要は今ますます広くなってきました。例えば、タオバオやアリペイの支払いなどはこの機能を使っていますが、どうやって実現しますか?ここではwebviewを使ってこのような機能をシミュレーションします。まず中のコードを見てみます。

<!DOCTYPE HTML> 
<html> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<body>
  <a href="xiaopinggaiblog://xiappinggai/open">  app</a><br/>
</body> 
</html>

はい、間違っていませんでした。このような数行のコードは、jsを使っていません。cssも使っていません。(/a)ラベルはハイパーリンクのラベルです。これは少し基礎があると信じています。重要なのはこのハイパーリンクの中身を見ることです。nggaiblog://xiappinggai/openこれは自分でカスタマイズしたものです。まず私たちが開くアプリケーションの登録ファイルの書き方を見てください。

<activity
      android:name=".MainActivity"
      android:excludeFromRecents="true"
      android:label="@string/app_name"
      android:screenOrientation="portrait" >

      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>

      <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data
          android:pathPrefix="/xiappinggai/open"
          android:scheme="xiaopinggaiblog" />
      </intent-filter>
    </activity>

ここでシミュレーションしたのは、もう一つのプログラムのメインインターフェースを開いて、下の意図フィルタを見ました。ここには「data/」というラベルがあります。このラベルの内容:
<data android:pathPrefix=「/xiapinggai/open」
     android:scheme=「xiaopinggaiblog」/>
PathPrefix属性は、Intentオブジェクト中の経路の初期部分と一致する部分パスのみを指定しています。
scheme属性はURIのscheme部分を設定するために使用されます。これはURIに設定する最も基本的な属性を指定しています。少なくともフィルタにscheme属性を設定してください。そうでないと他のURI属性は意味がありません。
このように配置すれば、他のAPPを完璧に開くことができます。また、この機能をサポートするブラウザもあります。テストの時に開けられない状況があれば、他のブラウザのテストを考慮してもいいです。
次に、どのようにデータをそのアプリケーションに送るかを見てみましょう。実は難しくないです。urlを変えてもいいです。具体的には次の通りです。
xiaopnggaiblog://xiappinggai/open?data=xiaopinggaiblog
複数のパラメータを着るなら?実際にも大丈夫です。&記号で接続できます。こう書きます。
xiaopnggaiblog://xiappinggai/open?data=xiaopinggaiblog&arga=value
そのアプリケーションではどうやって受信しますか?実は何行かのコードのことです。データを受信したいActivityにこう書きます。

   Uri uridata = this.getIntent().getData();
      if (uridata!=null) {
        String mydata = uridata.getQueryParameter("data");
      }
このように書くとデータを得ることができますが、もう一つの問題があります。開くアプリがインストールされていない場合、この時点でアプリを開くとエラーが発生します。これは相互体験に影響を与えます。

mWeb.setWebViewClient(new WebViewClient(){
      @Override
      public void onReceivedError(WebView view, int errorCode,
          String description, String failingUrl) {
        mWeb.loadUrl("file:///android_asset/html2.html");
        Toast.makeText(MainActivity.this, "    APP", 0).show();
      }

    });

このようにすればいいです。これはウェブページのロードに失敗した時に実行する操作です。私達はこのようにヒントを与える以外に、彼をAppのダウンロード住所などの一連の自分の欲しい操作にジャンプさせることもできます。
はい、コードは全部ここにあります。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。