4

カスタムリンクがあります: 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 のカスタム スキームをキャプチャする方法は?

どうもありがとう、

4

1 に答える 1