動態

詳情 返回 返回

Android微信內h5頁面喚起瀏覽器打開頁面的技術分析和實現 - 動態 詳情

摘要

眾所周知,微信是有內置瀏覽器的,方便瀏覽網頁。但是其內核也是經過特殊改造,導致一些默認行為無法觸發。為了實現從微信跳轉到瀏覽器打開頁面,可以説是相當的困難,本次分享的是Android系統的微信在h5頁面調起手機瀏覽器並打開指定頁面的方法。

技術原理

通過二進制文件下載的方法,調起本地瀏覽器下載文件實現喚起瀏覽器。

代碼

使用php的頭文件實現文件下載,告訴瀏覽器這是一個二進制文件流,瀏覽器就會喚起下載,那麼在Android喚起下載都是調起瀏覽器的。

調起瀏覽器之後,跳轉到瀏覽器,就會在瀏覽器判斷當前的UA,如果不是在微信環境下,那麼就無需再次調起下載,而是重定向Url,就實現了跳轉到指定的頁面了。

<?php

    // 文件路徑
    $file = 'jump.doc';
    
    // 檢查用户代理字符串是否包含 MicroMessenger
    $isWeChat = strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false;
    
    if ($isWeChat) {
        
        // 如果是微信瀏覽器,則直接下載文件
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="'.basename($file).'"');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        readfile($file);
        exit;
    } else {
    
        
        // 如果不是微信瀏覽器
        // 則使用js重定向
        echo '<script>location.href="https://ulink.alipay.com/?scheme=alipays%3A%2F%2Fplatformapi%2Fstartapp%3FsaId%3D10000007%26clientVersion%3D3.7.0.0718%26qrcode%3Dhttps%253A%252F%252Frender.alipay.com%252Fp%252Fc%252Falipay-red-qrcode%252Fshared.html%253Fchannel%253Dsearch_pwd%2526shareId%253D2088602294611742%2526token%253D196139496tmg2vcinfrii8chMb%2526campStr%253DkPPFvOxaCL3f85TiKss2wsBZgIjulHjG%2526sign%253DqsiVOoa7TuphryWxyBdONXsMTnE3jiIBvWeUs3yV1sw%253D%2526chInfo%253DDingtalk%2526c_stype%253Dsearch_pwd";</script>';
    }
?>

體驗

請使用微信掃碼:
image.png

image.png

image.png

本文作者

TANKING

服務器&主機推薦

免備案的虛擬主機、雲服務器
寶塔/EP系統預裝(支持Windows),一鍵式操作
https://www.rainyun.com/TANKING_

user avatar zaotalk 頭像 ayuan01 頭像 hard_heart_603dd717240e2 頭像 u_17397181 頭像 Poetwithapistol 頭像 haoqidedalianmao 頭像 tangzhiyuan 頭像 cbuc 頭像 xixindeshoutao 頭像 emanjusaka 頭像 opentiny 頭像 seth9shi 頭像
點贊 32 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.