乐趣区

iOS不使用微信sdk,直接打开小程序

直接贴代码
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″];
}
获取微信 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 同样的功能。

退出移动版