木蚂蚁手机乐园首页

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2452|回复: 2

[教程/经验] iOS不使用微信sdk,直接打开小程序

[复制链接]

签到天数: 195 天

连续签到: 1 天

[LV.7]有车蚂蚁

3818

主题

4556

帖子

2万

积分

木蚂蚁高中一年级

Rank: 10Rank: 10

积分
28212

发帖先锋2018世界杯专属勋章

发表于 2019-8-9 16:50:36 | 显示全部楼层 |阅读模式


直接贴代码
iOS审核不让有支付代码,所以只使用轻度功能的话,可以不使用微信SDK。

使用前需要先去微信开放平台绑定。

我的封装
  1. /**
  2. *  开发前需要到微信开放平台把App绑定小程序,然后在小程序的管理员微信上点击同意绑定,就可以转跳了
  3. *  字段解释:
  4. *  @appid:小程序appid
  5. *  @username:‘gh’开头的小程序公用id
  6. *  @path:小程序需要打开页面的路径
  7. *  @type:0是正式版,1是开发版,2是体验版
  8. **/
  9. -(void)jumpToWechatMiniProgram:(NSString *)appid ghId:(NSString *)username path:(NSString *)path type:(NSString *)miniProgramtype{
  10.     NSString *mPath = [path stringByReplacingOccurrencesOfString:@"/" withString:@"%2F"];
  11.     NSString *url = [NSString stringWithFormat:@"weixin://app/%@/jumpWxa/?userName=%@&path=%@&miniProgramType=%@&extMsg=",appid,username,mPath,miniProgramtype];
  12.     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]options:@{} completionHandler:^(BOOL success) {
  13.         NSLog(@"跳转成功");
  14.     }];
  15. }
复制代码

调用
  1. -(IBAction)jumpWithUrl:(id)sender{
  2.     [self jumpToWechatMiniProgram:@"wx8888888888888" ghId:@"gh_88888888888" path:@"pages/index/index?session=自己定的参数" type:@"2"];
  3. }
复制代码

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里添加(注意缩进不要弄错了,最好在模拟器上试,如果安装了微信,是不会跳到我们的假微信里的。):

  1. <key>CFBundleURLTypes</key>
  2.     <array>
  3.         <dict>
  4.             <key>CFBundleURLSchemes</key>
  5.             <array>
  6.                 <string>weixin</string>
  7.             </array>
  8.             <key>CFBundleURLName</key>
  9.             <string>1111</string>
  10.         </dict>
  11.     </array>
复制代码

看不到源码页面的话,右键info.plist,选择Open As -> Source Code就能看到了,改完了切回Property List模式,不报错就说明格式是对的。

获取转跳参数
在appDelegate.m里增加:

  1. // 这方法显示已经废弃了,但是只是获取参数还是可以的
  2. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  3.   sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
  4.     //显示截取的urlscheme
  5.     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"接收到的urlScheme" message:url.absoluteString delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
  6.     [alert show];
  7. //    复制到剪贴板
  8.     UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
  9.     pasteboard.string = url.absoluteString;
  10.    
  11.     return YES;
  12. }
复制代码

然后就能看到弹窗里的urlscheme就可以了,只要拼接出一个一样的urlscheme,就可以启用微信SDK同样的功能。

签到天数: 2 天

连续签到: 2 天

[LV.1]初来乍到

0

主题

41

帖子

82

积分

木蚂蚁小学一年级

Rank: 1

积分
82
发表于 2019-8-10 11:46:54 木蚂蚁客户端 | 显示全部楼层
.....

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

3

主题

217

帖子

449

积分

木蚂蚁小学三年级

Rank: 3

积分
449
发表于 6 天前 木蚂蚁客户端 | 显示全部楼层
好吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

推荐版块: 木蚂蚁潮流实验室  |  
安卓市场   安卓软件   安卓软件教程   安卓游戏攻略   手机游戏   手机健康软件   手机订餐软件   手机购物软件   热门TAG
快速回复 返回顶部 返回列表