カスタムリンクがあります: callnumber://12345
このリンクのクリックイベントを次の方法でキャプチャしたい:
<activity android:name=".Test"
android:label="@string/app_name">
<intent-filter>
<data android:scheme="callnumber"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
Samsung Galaxy S2、Samsung Galaxy 2、Motorola XT720 などの多くのデバイスでテストしましたが、完全に動作しましたが、HTC Sensation Z710e では動作しませんでした。
HTC Sensation Z710e では、そのリンクがhttp://www.callnumber.com//に変わり、ブラウザで開くことがわかりました。
私はインテントフィルターをこのように変えました、そしてそれはうまくいきました:
<intent-filter>
<data android:scheme="http" android:host="www.callnumber.com"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
ただし、カスタムから http スキームに変更するとデータが失われやすいため、http スキームをキャプチャしたくありません。
例: リンクが callnumber://12345# の場合、 http ://www.callnumber.com//12345 になり、文字「#」が失われます
または、リンクが callnumber://12345#34567 の場合、http://www.callnumber.com//12345になり、「#34567」が失われます
上記のAndroidデバイスリスト(HTC Sensation Z710eを除く)を使用すると、必要なデータが正確に返されます。
では、すべての Android デバイス、または少なくとも HTC Sensation Z710e のカスタム スキームをキャプチャする方法は?
どうもありがとう、