帮助与文档

> >

一、下载MobPush SDK

MobPush iOS版本的JavaScript插件是在MobPush iOS版本基础上对接口做JS桥接,是依赖MobPush for iOS的。(目前不支持浏览器打开的web应用,只支持App内置的Web页面,这个web页可以自己在本地也就是项目里创建html文件,也可以网上得到)。所以下载MobPush SDK就包含了以下2部分,下载下来的文件目录截图如下:


  • 将以上2个红色方框内的文件拖到新建的项目中。

二、MobPush的初始化配置

1)配置AppKeyAppSecret

在主工程项目的Info.plist中添加2个字段:MOBAppKeyMOBAppSecret,对应的值是在mob.com官方申请的应用的AppKeyAppSecret

证书里需要开通apns功能,然后在项目里设置,如下:

2)添加项目依赖库

必须添加的依赖库如下(Xcode 7 之后 *.dylib库后缀名更改为*.tbd)

libstdc++.dylib

libz.1.2.5.dylib

CoreLocation.framework

3)推送初始化配置

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中进行推送配置即可。

引入头文件

#import “MobPushJSBridge.h"

设置推送环境

#if DEBUG

    [[MobPushJSBridge sharedBridge] setPushNotifyReleaseEnvironment:NO];

#else

    [[MobPushJSBridge sharedBridge] setPushNotifyReleaseEnvironment:YES];

#endif

4)为UIWebView添加消息捕获

a、在实现 UIWebView 控件的 ViewController 中导入 MobPushJSBridge 头文件并挂载 UIWebViewDelegate

b、给UIWebView设置一个委托对象,如:(注意:webViewUIWebView的对象实例。)

// ...

webView.delegate = self;

c、实现shouldStartLoadWithRequest委托方法,并在方法中加入JSBridgecaptureRequest方法,代码如下:

#pragma mark - UIWebViewDelegate

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
     return ![[MobPushJSBridge sharedBridge] captureRequest:request webView:webView];
}

三、JS接口的调用

 1 html 页中添加 JS 文件引用:

<script src="MobPush.js"></script>

2)添加本地推送

var params = {

                "msgType" : $mobpush.SendMsgType.local,

                "content" : "收到本地通知",

                "title"   : "测试-我是标题",

                "subTitle" : "测试-我是子标题",

                "sound" : "unbelievable.caf",

                "badge" : 999,

            };

             

$mobpush.sendLocalNotify(params, function (reqID, body, title, subTitle, badge, sound) {

                alert(body);

                alert(title);

                alert(subTitle);

                alert("角标"+badge);

            });

3)推送设置

a.获取注册id(可与用户id绑定,实现向指定用户推送消息)

$mobpush.getRegistrationID(function(reqID){

                    alert(reqID);

            });

b.设置别名

var params = {

                "alias" : "我的别名"

            };

$mobpush.setAlias(params,function(reqID){

                    alert(reqID);

            });

 

c.获取别名

$mobpush.getAlias(function(reqID,alias){

                    alert(alias);

            });

 

d.删除别名

$mobpush.deleteAlias(function(reqID){

                    alert(reqID);

            });

e.添加标签

var params = {

                "tags" : ['a','b','c'],

            };

$mobpush.addTags(params ,function(reqID) {

                alert(reqID);

            });

f.获取所有标签

$mobpush.getTags(function(reqID,tags) {

                alert(tags);

            });

g.删除标签

var params = {

                 "tags" : ['a','b'],

             };

$mobpush.deleteTags(params,function(reqID){

                    alert(reqID);

            });

h.清空所有标签

$mobpush.cleanAllTags(function(reqID) {

                alert(reqID);

            });

四、JS接口的回调

js接口的回调是由原生SDK的回调数据经过包装,通过调用[NSString stringWithFormat:@"$mobpush.callback(%@)", [MOBFJson jsonStringFromObject:data]]函数实现。

js中响应回调的实现如下:

this.callback = function (response)

        {

            if (response.callback)

            {

                var callbackFunc = eval(response.callback);

                if (callbackFunc)

                {

                    var method = response.method;

                    switch (method)

                    {

                        case MobPushMethodName.SendCustomMsg:

                            callbackFunc(response.seqId, response.content, response.messageId);

                            break;

                        case MobPushMethodName.SendAPNsMsg:

                            callbackFunc(response.seqId, response.content, response.mobpushMessageId);

                            break;

                        case MobPushMethodName.SendLocalNotify:

                            callbackFunc(response.seqId, response.content, response.title, response.subtitle, response.badge);

                            break;

                        case MobPushMethodName.GetRegistrationID:

                            callbackFunc(response.seqId, response.registrationID, response.errorCode, response.errorMsg);

                            break;

                        case MobPushMethodName.SetAlias:

                            callbackFunc(response.seqId, response.errorCode, response.errorMsg);

                            break;

                        case MobPushMethodName.GetAlias:

                            callbackFunc(response.seqId, response.alias, response.errorCode, response.errorMsg);

                            break;

                        case MobPushMethodName.DeleteAlias:

                            callbackFunc(response.seqId, response.errorCode, response.errorMsg);

                            break;

                        case MobPushMethodName.AddTags:

                            callbackFunc(response.seqId, response.errorCode, response.errorMsg);

                            break;

                        case MobPushMethodName.GetTags:

                            callbackFunc(response.seqId, response.tags, response.errorCode, response.errorMsg);

                            break;

                        case MobPushMethodName.DeleteTags:

                            callbackFunc(response.seqId, response.errorCode, response.errorMsg);

                            break;

                        case MobPushMethodName.CleanAllTags:

                            callbackFunc(response.seqId, response.errorCode, response.errorMsg);

                            break;

                            

                    }

                }

            }

        };

相关文档