Android如何從外部跳進App,Android跳進App

來源:互聯網
上載者:User

Android如何從外部跳進App,Android跳進App

解決這個問題有兩個作用:

1、不用開啟App直接進入某頁面

2、實現App分享到外部,同時由外部進入App的閉環。

這個話題可以分兩方面來講,一方面是從進入App,另一方面是從網頁進入App。

咱們拿http://my.oschina.net/liucundong/blog/354029當例子來講一下

主要通過scheme、host、path、pathPrefix等data資訊來區分

兩個方案都需要給跳轉到的Activity加入intent-filter資訊,例如

<intent-filter>

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />

<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="cundong" android:host="splash"/>

</intent-filter>

首先我們來講端進入App,情境:從App分享內容到,再從直接開啟App。

第一步,註冊公眾平台,相關公司資訊,下載連結,Logo等 都填寫完畢

第二步,分享時使用WXAppExtendObject,把連結url賦值給extInfo

第三步,在IWXAPIEventHandler介面的onReq方法的req.getType()=ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX時,發起你的跳轉

第四步,跳轉時需要資料,資料從哪裡來,從WXEntryActivity類中onCreate方法的getIntent對象裡來

從進入App就這樣結束了。

-------------------我是分割線------------------------

接著來講網頁端,由於webView的限制,如、微博等都採用這個控制項,所以只能分享到網頁,再進入App。

原理如下:

<div>
            <a id="J-call-app" href="javascript:;" class="label">立即開啟&gt;&gt;</a>
            <input id="J-download-app" type="hidden" name="storeurl" value="http://apk.hiapk.com/appinfo/com.tmall.wireless">
        </div>
 
        <script>
            (function(){
                var ua = navigator.userAgent.toLowerCase();
           
                var t;
                var url=document.location;
                var config = {
                    /*scheme:必須*/
                    scheme_IOS: 'cundong://',
                    scheme_Adr: 'cundong://splash',
                    download_url: document.getElementById('J-download-app').value,
                    timeout: 600
                };
 
                function openclient() {
                    var startTime = Date.now();
 
                    var ifr = document.createElement('iframe');
 
                    //alert(config.scheme_Adr);
                    ifr.src = ua.indexOf('os') > 0 ? config.scheme_IOS : config.scheme_Adr;
                    ifr.style.display = 'none';
                    document.body.appendChild(ifr);
 
                    var t = setTimeout(function() {
                        var endTime = Date.now();
 
                        if (!startTime || endTime - startTime < config.timeout -200) { 
                            window.location = config.download_url;
                        } else {
                                   window.location.href=ifr.src.replace("http://","cundong://");;
                        }
                    }, config.timeout);


 
                    window.onblur = function() {
                        clearTimeout(t);
                    }
                }
                window.addEventListener("DOMContentLoaded", function(){
                    document.getElementById("J-call-app").addEventListener('click',openclient,false);
 
                }, false);
            })()
        </script>

點擊開啟四個字後,執行一個js,在限制時間內,如果可以開啟App則開啟,否則進入下載頁

解決這個問題的基本思路就是這樣,歡迎大家交流探討!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.