极速快3精准计划|极速快3有规律吗
用戶
 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,登錄網站

小程序社區 首頁 教程 實戰教程 查看內容

【開發經驗】iOS不使用微信sdk,直接打開小程序

Rolan 2019-4-16 00:25

直接貼代碼iOS審核不讓有支付代碼,所以只使用輕度功能的話,可以不使用微信SDK。使用前需要先去微信開放平臺綁定。我的封裝/** * 開發前需要到微信開放平臺把App綁定小程序,然后在小程序的管理員微信上點擊同意綁 ...

直接貼代碼

iOS審核不讓有支付代碼,所以只使用輕度功能的話,可以不使用微信SDK。

使用前需要先去微信開放平臺綁定。

我的封裝

/**
 *  開發前需要到微信開放平臺把App綁定小程序,然后在小程序的管理員微信上點擊同意綁定,就可以轉跳了
 *  字段解釋:
 *  @appid:小程序appid
 *  @username:‘gh’開頭的小程序公用id
 *  @path:小程序需要打開頁面的路徑
 *  @type:0是正式版,1是開發版,2是體驗版
 **/
-(void)jumpToWechatMiniProgram:(NSString *)appid ghId:(NSString *)username path:(NSString *)path type:(NSString *)miniProgramtype{
    NSString *mPath = [path stringByReplacingOccurrencesOfString:@"/" withString:@"%2F"];
    NSString *url = [NSString stringWithFormat:@"weixin://app/%@/jumpWxa/?userName=%@&path=%@&miniProgramType=%@&extMsg=",appid,username,mPath,miniProgramtype];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]options:@{} completionHandler:^(BOOL success) {
        NSLog(@"跳轉成功");
    }];
}

調用

-(IBAction)jumpWithUrl:(id)sender{
    [self jumpToWechatMiniProgram:@"wx8888888888888" ghId:@"gh_88888888888" path:@"pages/index/index?session=自己定的參數" type:@"2"];
}

Scheme白名單

如果是真機測試記得在info.plist添加白名單

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>mqzone</string>
        <string>sinaweibo</string>
        <string>mqqwpa</string>
        <string>mqqbrowser</string>
        <string>wtloginmqq2</string>
        <string>weixin</string>
        <string>wechat</string>
    </array>

獲取微信sdk的其他功能

iOS中,app互相轉跳走的都是openUrl這個接口,通過scheme就可以轉跳到目標程序,但是scheme是不審核的,可以隨意指定,所以我們可以通過寫一個假微信(scheme是weixin),來攔截微信SDK的啟動請求,從而獲取到對應的啟動字符串,然后自己拼接字符串即可。

偽造微信

在info.plist里添加(注意縮進不要弄錯了,最好在模擬器上試,如果安裝了微信,是不會跳到我們的假微信里的。):

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>weixin</string>
            </array>
            <key>CFBundleURLName</key>
            <string>1111</string>
        </dict>
    </array>

看不到源碼頁面的話,右鍵info.plist,選擇Open As -> Source Code就能看到了,改完了切回Property List模式,不報錯就說明格式是對的。

獲取轉跳參數

在appDelegate.m里增加:

// 這方法顯示已經廢棄了,但是只是獲取參數還是可以的
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    //顯示截取的urlscheme
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"接收到的urlScheme" message:url.absoluteString delegate:nil cancelButtonTitle:nil otherButtonTitles:@"確定", nil];
    [alert show];
//    復制到剪貼板
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    pasteboard.string = url.absoluteString;
    
    return YES;
}

然后就能看到彈窗里的urlscheme就可以了,只要拼接出一個一樣的urlscheme,就可以啟用微信SDK同樣的功能。

鮮花
鮮花
雞蛋
雞蛋
分享至 : QQ空間
收藏
原作者: 馬嘉倫 來自: segmentfault
极速快3精准计划 广东麻将技巧 历史开奖手机完整版 幸运赛车开奖结果查询 全天时时计划 广东11选5怎么计划 北京pk10高手技术分享 卡红是什么意思 投乐彩网站 大小单双稳赚技巧集锦 时时彩软件 稳赚